꾸준히 안타치기
RDBMS, 관계형데이터베이스, Join 본문
Relational DataBase Management System
(관계형 / 데이터 기반 / 관리 시스템) 대표적인 제품들 → 오라클,mssql, mysql==MariaDB
→ 관계를 가지고 있는 테이블형식의 데이터 기반 관리시스템
관리는 왜필요할까? 관리시스템의 장점 :
구체적으로 생각하기→ 엑셀을 예로
분류하기가 쉽고, 필요한 정보만 찾아 쓸수 있다. 검색하기가 좋다.
수많은 정보를 텍스트로 관리한다는 것은 불가능하다. 좋은 기능을 가져다 쓰면 되므로
입력오류를 방지해준다.( ex- 오타, 문자열을 입력할 곳에 숫자를 잘못입력 )
데이터 베이스란?
index를 이용해 잘정리해 둠 ⇒ 빠르다. 프로그래밍적으로 제어가 가능하다.
데이터 자체로는 아무런 의미를 가지지 않지만, 데이터가 목적에 따라 가공될때 정보가 된다.
테이블 형식의 데이터이다. 칼럼과 로우를 가지고 있다.
테이블은 행렬 추가 삭제가 가능하다.
너무 많은 데이터를 분류하지 않고 가지고 있다면 관리가 힘들어진다.
때에 따라 나누지 않고 같이 쓰기도한다. (join을 쓰지 않고)
나눴을때는 여러 테이블을 join해서 사용할 수 있다.
공집합, 합집합, 여집합 개념이 있다.
SQL(구조화된 정보= 표(table)를, 질의 응답하는 언어 )
구조가 정해져있는언어 / 정보를 얻을 수 있다.
Structured Query Language: SQL = 반대 노 에스큐엘
( 구조화된/ 질문을 /하는 언어 )
- select, 요청
- 추가
- 삭제
- 업데이트
컬럼, 로우 / 시트를 만든다는개념
테이블구조, // 0-0-0
0.요청,추가,삭제, 업데이트 -0어떤시트를 쓸것? -0조건
데이터 시트에는 직접적인 원본파일이 들어갈수도 있고, 데이터 쪼가리가 들어갈 수도 있다.
몇개의 테이블과 관계를 형성할 수 있다.
보안을 위해 원본을 넣는 것은 위험하다. 파일로 직접다운받게 하지 않는다.
데이블은 필요에 따라 나누기도하고, 합치기도 한다.
그리고 테이블 lock이라는 개념이 있다.
노에스큐엘과도 함께 쓰인다. 어떤것이 좋다고 할수 없다. 사용하기에 따라 속도가 다르다.
노에스큐엘은 규칙이 없다. 빅데이터같은 경우 노에스큐엘이 좋을수있다.
추가수정삭제 // 툴 무엇을 쓸지 직접비교
관계형 데이터베이스 정의
관계형 데이터베이스 모델을 사용하면 모든 테이블을 공통 속성을 사용해 다른 테이블과 연관시킬 수 있습니다.
관계형 데이터베이스(RDB)는 테이블, 행, 열의 정보를 구조화하는 방식입니다. RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있습니다.
https://cloud.google.com/learn/what-is-a-relational-database?hl=ko
관계형 데이터베이스의 이점
관계형 데이터베이스 모델의 주요 이점은 직관적인 데이터 표현 방법을 제공하고 관련 데이터 포인트에 쉽게 액세스할 수 있다는 점입니다. 그래서 관계형 데이터베이스는 인벤토리 추적부터 트랜잭션 데이터 처리 및 애플리케이션 로깅에 이르기까지 대량의 구조화된 데이터를 관리해야 하는 조직에서 가장 많이 사용합니다.
관계형 데이터베이스를 사용하면 데이터를 관리하고 저장할 때 다음과 같은 여러 가지 장점이 있습니다.
유연성
전체 데이터베이스 구조를 변경하거나 기존 애플리케이션에 영향을 주지 않고 필요할 때마다 간편하게 테이블, 관계를 추가 또는 삭제하고 데이터를 변경할 수 있습니다.
ACID 규정 준수
관계형 데이터베이스는 ACID(원자성, 일관성, 격리, 내구성) 성능을 지원하므로 오류, 실패, 기타 잠재적 오작동에 관계없이 데이터 유효성을 검사할 수 있습니다.
사용 편의성
기술자가 아닌 사용자도 데이터베이스와 상호작용하는 방법을 배울 수 있는 SQL을 사용하여 복잡한 쿼리를 쉽게 실행할 수 있습니다.
공동작업
여러 사용자가 동시에 데이터를 운영하고 액세스할 수 있습니다. 기본 제공되는 잠금 기능으로 업데이트 도중 데이터에 동시 액세스할 수 없습니다.
내장된 보안 기능
역할 기반 보안을 통해 데이터 액세스가 특정 사용자로 제한됩니다.
데이터베이스 정규화
관계형 데이터베이스는 데이터 중복성을 줄이고 데이터 무결성을 개선하는 정규화라는 설계 기법을 사용합니다.
- JOIN: 여러개의 테이블에 흩어져 있는 정보중, 사용자가 필요한 정보만 가져와 가상의 테이블을 만들어서 보여주는 것, 2개의 테이블을 조합해 하나의 열로 표현하는것
- inner JOIN: 서로 연관된 내용만 검색하는 조인방법이다. 교집합
- outter JOIN: 여러테이블에서 한쪽에는 데이터가 있고, 한쪽에는 데이터가 없는 경우, 데이터가 있는 쪽의 테이블 내용을 전부 출력하는 방법이다.
Outer Join에는 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있다.
https://jhkang-tech.tistory.com/55
cookPost테이블은 게시글 전체 / bookmark테이블은 저장한 게시글의 모음이다.
두테이블을 조인해서 가져오고 싶은 값 A.bookmark의 postIdx값과 B.cookPost의 postImg
AS.A ~를 A라 칭한다.
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [조건]
GROUP BY [그룹화할 컬럼]
HAVING [그룹화한 뒤 조건]
LIMIT [제한할 개수]
SELECT A.postIdx, B.postImg
FROM testDB.bookMark as A LEFT JOIN testDB.cookPost as B
ON A.postIdx = B.postIdx WHERE A.userID ='$userID';
북마크(A)의 postIdx와 쿡테이블의(B)의 postImg값을 조회해라 / (불러올 값)
bookmark 테이블 A이고, 북마크와 쿡포스트를 LEFT JOIN한다. cookPost 테이블은 B라 칭한다.
ON 북마크(A)의 postIdx와 쿡포스트(B)의 값이 같고, WHERE 북마크테이블(A)의 userID에 해당하는(조건)
sql문을 작성시 순서와, 갯수도 상관이 있다. 불러오는 값이 2개이면, 2개를 불러와야한다. |
https://coding-factory.tistory.com/87
https://jhkang-tech.tistory.com/55
https://developer88.tistory.com/331
'Server & DB' 카테고리의 다른 글
index란? (0) | 2022.12.15 |
---|---|
트랜잭션 (0) | 2022.06.16 |
소켓 사용하기 / 부스트코스 (0) | 2021.10.24 |
foreignKey (0) | 2021.10.21 |
DB 한글 ?, 물음표 (0) | 2021.10.01 |