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 열 이름으로, 관계는 테이블 간 대응관계로 나타내진다.
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의 개수
3. 물리적 데이터 모델링
Relation 모델 (논리적 스키마) -> 물리적인 SQL 코드 (데이터베이스 스키마)
- Relation 모델을 DBMS 종류에 따라 실제 물리 저장 장치에 저장할 수 있는 물리적 구조(ex. SQL)로 구현하는 과정
- 테이블별로 고유번호를 항상 준비해두어야 함
- 열이름 / 데이터타입(INT, VARCHAR, TIMESTAMP, ...) / 제약조건(PRIMARY KEY, NOT NULL, UNIQUE, CHECK(), ...)
SQL (Structured Query Language, 구조적 질의 언어)
- RDBMS에서 데이터 관리, 처리하기 위해 만들어진 언어
- SQL의 표준 : ANSI SQL
- Oracle, MySQL(MariaDB), SQLite, Microsoft SQL Server(MS SQL), PostgreSQL 등은 ANSI SQL 기반으로 개발된 자체적인 SQL 사용
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처리 *)
'멋쟁이 사자처럼 AI SCHOOL 5기 > Today I Learned' 카테고리의 다른 글
[4주차 총정리] Python 기반 SQL 프로그래밍(3) _DDL 실습 (0) | 2022.04.08 |
---|---|
[4주차 총정리] Python 기반 SQL 프로그래밍(2) _SQL 입문자를 위한 기초실습 (0) | 2022.04.08 |
[3주차 총정리] 통계검정 (p-value, chisquare 검정, 상관관계 분석/ pearsonr, ttest_ind, chi2_contingency 함수) (0) | 2022.03.30 |
[3주차 총정리] 통계검정 (T검정, ANOVA) (0) | 2022.03.30 |
[3주차 총정리] pd.DataFrame 분포 시각화 (hist, distplot, scatterplot, jointplot, boxplot, crosstab, pairplot) (0) | 2022.03.30 |