일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Inheritance
- 리눅스 마스터 1급
- X윈도우
- Mac
- selenium
- Java
- preprocessing
- literal
- Unity
- systemd
- spring
- X.org
- 리눅스
- BFS
- 자바
- External Scheme
- Entity Set
- python
- 셀레니움
- Class
- Binary Search
- Reference Type
- dbms
- descriptive statistics
- Physical Scheme
- 백준
- Entity
- Polymolphism
- Operator
- OOP
- Today
- Total
Byeol Lo
Database Management - DBMS Concept 본문
E/R 모델을 통해 개념적 설계가 끝나고 DBMS 내의 논리적 설계를 위해 SQL(Structured Query Language)을 알아야 한다. SQL은 데이터 질의와 조작을 위한 표준화된 언어이며, 매우 상위 계층의 언어(High-level Language)이다. SQL은 질의에 따라 DCL, DDL, DML로 나뉜다. (DCL은 나중에 배워도 된다.)
Data Definition Language(DDL)
SQL의 한 유형이며, 관계(Relation = Table) 스키마(테이블 또는 속성 생성/변환/제거)에 관련된 질의 언어이다. 아래의 표 제목과 열 이름들을 조작하는데 쓸 수 있는 쿼리이다.
Title Example
Name | Old | Gender |
Isabolla | 9 | girl |
Ethan | 11 | boy |
Michael | 8 | boy |
Data Manipulation Language(DML)
테이블 안의 Row(record, entity - E/R 모델에서 쓰이는 용어)에 대해 데이터 삽입, 삭제, 수정 등을 맡고 있는 쿼리이다. 위의 행들을 관리하는 것이다. 행들에 들어가는 값들은 다음과 같은 데이터 타입(Atomic)을 "무조건" 가져야 한다. 프로그래밍 언어와는 다르게 데이터 타입을 Atomic types이라고 한다.
Data Types in SQL (Atomic types)
- 문자형(Characters) : CHAR(n), VARCHAR(n)
- 숫자형(Numbers) : INT, BIGINT, SMALLINT, FLOAT, NUMERIC
- 기타(Others) : MONEY, DATETIME
이를 통해 Table Schema(관계 스키마)를 이제 정의할 수 있고, 다음과 같이 테이블 이름, 속성, 아토믹 타입이 들어가게 된다.
Product(Pname: string, Price: float, Category: string, Manufacture: string)
string은 char로 나타내야 하지만, 들어가는 용량이 어떻게 될지 모르고 간단하게 나타내기 위해 때문에 일반적으로 스키마를 표현할 때는 저렇게 나타내는 듯하다. (내 추측이다.)
General Constraints
주로 사용하게 되는 제한, 규칙들을 적용하기 위한 제약조건들을 나타내는 용어다. 각 열에 적용되며, 일반적 제약은 다른 제약 조건들보다 우선시 된다. (ex. PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, ...)
이러한 제약조건들을 많이 사용하다 보면 성능(Performance)에 영향이 가는데, Constraints와 Performance는 서로 Trade-off 관계에 있어, 하나가 좋으면 하나가 나빠지게 된다. 하지만, 스키마와 제약조건들이 있음으로 인해서 DB 데이터 들의 의미를 더 잘 이해할 수 있게 된다.
'BackEnd > Database Management' 카테고리의 다른 글
Database Management - SQL Operators (0) | 2023.04.01 |
---|---|
Database Management - MySQL 기본지식 (0) | 2023.04.01 |
Database Management - E/R Model II (0) | 2023.04.01 |
Database Management - E/R model 1 (0) | 2023.03.17 |
Database Management - Transactions, Concurrency (0) | 2023.03.14 |