꾸준히 안타치기

RDBMS, 관계형데이터베이스, Join 본문

Server & DB

RDBMS, 관계형데이터베이스, Join

글자줍기 2022. 12. 15. 20:35
반응형

Relational DataBase Management System

(관계형 / 데이터 기반 / 관리 시스템) 대표적인 제품들 → 오라클,mssql, mysql==MariaDB

→ 관계를 가지고 있는 테이블형식의 데이터 기반 관리시스템

관리는 왜필요할까? 관리시스템의 장점 :

구체적으로 생각하기→ 엑셀을 예로

분류하기가 쉽고, 필요한 정보만 찾아 쓸수 있다. 검색하기가 좋다.

수많은 정보를 텍스트로 관리한다는 것은 불가능하다. 좋은 기능을 가져다 쓰면 되므로

입력오류를 방지해준다.( ex- 오타, 문자열을 입력할 곳에 숫자를 잘못입력 )

데이터 베이스란?

index를 이용해 잘정리해 둠 ⇒ 빠르다. 프로그래밍적으로 제어가 가능하다.

데이터 자체로는 아무런 의미를 가지지 않지만, 데이터가 목적에 따라 가공될때 정보가 된다.

테이블 형식의 데이터이다. 칼럼과 로우를 가지고 있다.

테이블은 행렬 추가 삭제가 가능하다.

너무 많은 데이터를 분류하지 않고 가지고 있다면 관리가 힘들어진다.

때에 따라 나누지 않고 같이 쓰기도한다. (join을 쓰지 않고)

나눴을때는 여러 테이블을 join해서 사용할 수 있다.

공집합, 합집합, 여집합 개념이 있다.

SQL(구조화된 정보= 표(table)를, 질의 응답하는 언어 )

구조가 정해져있는언어 / 정보를 얻을 수 있다.

Structured Query Language: SQL = 반대 노 에스큐엘

( 구조화된/ 질문을 /하는 언어 )

  1. select, 요청
  2. 추가
  3. 삭제
  4. 업데이트

컬럼, 로우 / 시트를 만든다는개념

테이블구조, // 0-0-0

0.요청,추가,삭제, 업데이트 -0어떤시트를 쓸것? -0조건

데이터 시트에는 직접적인 원본파일이 들어갈수도 있고, 데이터 쪼가리가 들어갈 수도 있다.

몇개의 테이블과 관계를 형성할 수 있다.

보안을 위해 원본을 넣는 것은 위험하다. 파일로 직접다운받게 하지 않는다.

데이블은 필요에 따라 나누기도하고, 합치기도 한다.

그리고 테이블 lock이라는 개념이 있다.

노에스큐엘과도 함께 쓰인다. 어떤것이 좋다고 할수 없다. 사용하기에 따라 속도가 다르다.

노에스큐엘은 규칙이 없다. 빅데이터같은 경우 노에스큐엘이 좋을수있다.

추가수정삭제 // 툴 무엇을 쓸지 직접비교


관계형 데이터베이스 정의

관계형 데이터베이스 모델을 사용하면 모든 테이블을 공통 속성을 사용해 다른 테이블과 연관시킬 수 있습니다.

관계형 데이터베이스(RDB)는 테이블, 행, 열의 정보를 구조화하는 방식입니다. RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있습니다. 

https://cloud.google.com/learn/what-is-a-relational-database?hl=ko 

 

관계형 데이터베이스(RDBMS)란 무엇인가요?  |  Google Cloud

관계형 데이터베이스의 작동 방식, 관계형 데이터를 사용하여 조직 데이터를 저장하는 경우의 이점, 비관계형 데이터베이스의 비교에 대해 알아봅니다.

cloud.google.com

 

관계형 데이터베이스의 이점

관계형 데이터베이스 모델의 주요 이점은 직관적인 데이터 표현 방법을 제공하고 관련 데이터 포인트에 쉽게 액세스할 수 있다는 점입니다. 그래서 관계형 데이터베이스는 인벤토리 추적부터 트랜잭션 데이터 처리 및 애플리케이션 로깅에 이르기까지 대량의 구조화된 데이터를 관리해야 하는 조직에서 가장 많이 사용합니다.

관계형 데이터베이스를 사용하면 데이터를 관리하고 저장할 때 다음과 같은 여러 가지 장점이 있습니다.

유연성

전체 데이터베이스 구조를 변경하거나 기존 애플리케이션에 영향을 주지 않고 필요할 때마다 간편하게 테이블, 관계를 추가 또는 삭제하고 데이터를 변경할 수 있습니다.

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

 

[MSSQL] JOIN의 종류설명 및 사용법 & 예제

조인이란? 두개이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을경우 주로 사용하며 여러개의 테이블을 마치 하나

coding-factory.tistory.com

 

https://jhkang-tech.tistory.com/55

 

[데이터베이스] Inner Join, Outer Join

안녕하세요 강정호입니다. 오늘은 Inner Join, Outer Join, Left Join, Right Join 에 대해 배워 보겠습니다. Inner JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN에 대해서 JOIN에 대해 자세한 설..

jhkang-tech.tistory.com

https://developer88.tistory.com/331

 

Join 에 관해서 정리해 보겠습니다. #SQL

오늘은 관계형 데이터베이스의 핵심인 Join에 대해서 정리해 보도록 하겠습니다. 1. Join 중복정보를 제거하기 위해, 정규화가 된 테이블들이 있을 때, 조각나있는 여러 테이블의 정보를 한번에 합

developer88.tistory.com

 

반응형

'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
Comments