본문으로 바로가기

DBMS (DataBase Management System)

- 하드웨어에 저장된 데이터베이스를 관리해주는 소프트웨어

- (1세대)계층형 > (2세대)네트워크형 > (3세대)관계형 > (4세대)객체형

 

- 3세대 관계형 == R(elational) DMBS

   - ex) Oracle, MySQL(MariaDB), SQLite, Microsoft SQL Server(MS SQL), PostgreSQL 등

 


데이터 모델링 3단계

1. 개념적 데이터 모델링 

현실 세계의 raw data -> E-R Diagram (ERD, 개념 스키마)

- 현실 세계로부터 개체(Entity) 추출

- 개체들 간 관계 정의

- E(ntity) - R(elationship) 다이어그램 만드는 과정

 

- 개체는 Table 단위로 만들어지고, 속성은 Table 열 이름으로, 관계는 테이블 간 대응관계로 나타내진다.

https://www.edrawsoft.com/kr/article/how-to-create-erd-diagram.html

 

 

2. 논리적 데이터 모델링

E-R Diagram (개념 스키마) -> Relation 모델 (논리적 스키마)

- ERD에서 데이터베이스에 저장할 수 있는 논리적인 구조를 Relation 모델로 표현하는 과정

- Relation : 개체에 대한 데이터를 2차원 테이블 구조로 표현한 것 (Relationship도 포함)

- Attribute : 하나의 열 (column) == Field

- Tuple : (13012, 홍길동, 수학, A+) 형식으로 나오는 행 (row) == Record / Instance

- Degree(차수) : Relation 내 Attribute의 개수

- Cardinality(카디널리티) : Relation 내 Tuple의 개수

 

https://iingang.github.io/posts/DB-RelationDataModel/

 

3. 물리적 데이터 모델링

Relation 모델 (논리적 스키마) -> 물리적인 SQL 코드 (데이터베이스 스키마)

- Relation 모델을 DBMS 종류에 따라 실제 물리 저장 장치에 저장할 수 있는 물리적 구조(ex. SQL)로 구현하는 과정

- 테이블별로 고유번호를 항상 준비해두어야 함

- 열이름 / 데이터타입(INT, VARCHAR, TIMESTAMP, ...) / 제약조건(PRIMARY KEY, NOT NULL, UNIQUE, CHECK(), ...)

https://www.geeksforgeeks.org/how-to-create-a-table-with-multiple-foreign-keys-in-sql/

 


SQL (Structured Query Language, 구조적 질의 언어)

- RDBMS에서 데이터 관리, 처리하기 위해 만들어진 언어

- SQL의 표준 : ANSI SQL

- Oracle, MySQL(MariaDB), SQLite, Microsoft SQL Server(MS SQL), PostgreSQL 등은 ANSI SQL 기반으로 개발된 자체적인 SQL 사용

https://velog.io/@emawlrdl/DDL-DML-DCL-TCL-%EC%9D%98-%EC%A0%95%EC%9D%98-%EC%99%80-Auto-Commit

 

1. DDL (데이터 정의 언어)

- 각 Relation(DB 테이블) 정의하기 위해 사용

- CREATE / ALTER / DROP 등으로 테이블 생성/변경/삭제 진행

 

2. DML (데이터 조작 언어)

- 데이터 관리(데이터 CRUD, 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능)

   - CRUD : Create, Read, Update, Delete를 묶어서 일컫는 말

- SELECT / INSERT / UPDATE / DELETE

 

3. DCL (데이터 제어 언어)

- Relation이나 데이터에 대한 사용자 관리 및 사용자별 권한 다루기 위해 사용

- GRANT(권한 부여) / REVOKE(권한 해제)

 


SQL 특징

1. 대소문자 가리지 않음

   - 일반적으로, 명령어는 대문자로 적어준다.

2. SQL 명령은 반드시 세미콜론(;)으로 끝내야 한다. 

   - 여러 개의 명령의 끝을 알려주기 위해서

3. 고유값은 " "로 감싸줌

4. 한 줄 주석(-- 주석처리), 여러 줄 주석(* 주석\n처리 *)