DB
전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합
조직화된 집합
1. 정해진 규칙에 맞추어 데이터를 빠르게 찾을 수 있다.
2. 불필요한 데이터 중복 생성 방지
3. 데이터 불일치 방지
DBMS (DataBase Management System)
DB를 관리하는 기능을 제공하는 소트프웨어 시스템이다. ex) Mysql, Oracle, PostgreSQL
Data Model
- DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
- DB 구조를 추상화해서 표현할 수 있는 수단을 제공한다.
- Data Model은 여러 종류가 존재하며 추상화 수준, DB 구조화 방식이 조금씩 다르다
Conceptual Data Models
- 일반 사용자들이 쉽게 이해할 수 있는 개념들도 이뤄진 모델
- 추상화 수준이 가장 높다
- 비즈니스 요구사항을 추상화하여 기술할 때 사용
ex) ERD. Entity간의 관계를 표현
Logical Data Models
- 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공
- 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
- 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화할 수 있는 모델
Physical Data Models
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공
3-schema architecture
external schema
- 실제 사용자가 바라보는 schema
- external views or user views라고도 불림
- 특정 유저들이 필요로 하는 데이터만 표현
- 그 외 알려줄 필요가 없는 데이터는 숨김
- logical data model을 통해 표현
conceptual schema
- 전체 데이터베이스에 대한 구조를 기술
- 물리적인 저장 구조에 관한 내용은 숨김
- logical data model을 통해 표현
#물리적인 저장구조: Entity, constraint, data type, relationship
internal schema
- 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
- data storage, data structure, access path등등 실체가 있는 내용을 기술
관계형 데이터 모델
관계란 subset of Cartesian product 으로 중복을 허용하지 않는다는 의미이다.
domain: set of atomic values
attribute: domain이 relation에서 맡은 역활
tuple: 각 attribute의 값으로 이루어진 리스트
relation: set of tuples
특징
- 중복된 tuple을 가질 수 없다.
- relation의 tuple을 식별하기 위해 attribute의 부분집합을 key로 설정한다.
- relation에서 tuple의 순서는 중요하지 않다. 순서가 변한다고 의미가 변하지 않는다.
- 하나의 relation내의 중복된 attribute 이름은 존재할 수 없다. 순서는 중요하지 않다
- attribute는 atomic해야 한다(composite or multivalued attribute 허용 안됨)
NULL
https://velog.io/@choibe/NULL-DB
JOIN
https://velog.io/@choibe/JOIN
ORDER BY & GROUP BY & Aggregate FN
https://velog.io/@choibe/ORDER-BY-aggregate-Fn-GROUP-By
Stored Function
https://velog.io/@choibe/Stored-Function
Stored Procedure
https://velog.io/@choibe/Stored-Procedure
Transaction
https://velog.io/@choibe/Transaction
Isolation Level
https://velog.io/@choibe/Isolation
FD #DB정규화의 기본
https://velog.io/@choibe/Functional-DependencyDB
정규화
https://velog.io/@choibe/%EC%A0%95%EA%B7%9C%ED%99%94
출처 - https://www.youtube.com/@ez. 쉬운코드