DATABASE
전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합
📁 DBMS( Database Management Systems)
- 사용자에세 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
- 데이터 간의 관계를 명확하게 정의하고 관리
- 복잡한 데이터 조작과 질의를 지원하여 복잡한 작업 쉽게 수행 가능
역할
- 데이터베이스 정의 : 데이터베이스에 저장될 데이터의 유형, 구조 및 제약 조건을 정의
- 데이터베이스 구축 : 데이터를 저장하여 데이터베이스를 생성
- 데이터베이스 조작 : 데이터베이스에서 정보를 검색하고 업데이트 하는 기능 제공
- 데이터베이스 공유 : 다수의 사용자 및 프로그램이 동시에 데이터베이스에 엑세스할 수 있도록 함
📁 파일시스템과 데이터베이스의 차이
파일시스템
- 운영체제에서 파일과 디렉토리를 관리하는 방법
- 데이터 간의 관계를 정의하지 않는다
파일 시스템은 파일 단위로 저장하여 간단한 데이터 저장에 적합
하지만 DBMS는 테이블 구조로 데이터를 저장하여 데이터 간의 관계를 정의하여 복잡한 데이터를 쉽게 처리 할 수 있다.
📁 Database System
- database + DBMS + 관련 applications
- (MYSQL,ORACLE 등)
📁 Data Models
DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
- db구조를 추상화해서 표현할 수 있는 수단 제공
- data model은 여러가지가 있으며 읽고쓰기 위한 기본적인 동작들도 포함
Data Models 분류
conceptual data models
- 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델 [ex. entity-relationship model]
logical data models
- 이해하기 어렵지 않으면서도 디테일하게 db를 구조화 할 수 있는 개념들을 제공 . (ex. relational data model)
physical data models
- 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
📁 Schema & State
schema
- data model을 바탕으로 database의 구조를 기술한 것
- 데베 설계할 때 정해지고 한 번 정해지면 자주 바뀌지 않는
state
- 실제 데이터가 꽤 자주 바뀔 수 있는 것
three-schema architecture
exteranl schemas
특정 유저들이 필요로 하는 데이터만 표현. 그 외는 숨김 =VDL
conceptual schemas
전체 데베 내용기술 물리저장구조는 숨김=DDL
interal schemas
물리적으로 데이터가 어떻게 저장되는지 =SDL
SQL : DML VDL DDL합친 형태
관계형 DB
📁 relational data model
관계형 데이터 모델은 말 그대로 relation, 관계라는 개념을 사용해 표현한 데이터 모델
relational data model 용어
domain | 나눠질 수 없는 최소 개념 |
attribute | domain이 relation에서 맡은 역할 이름 |
tuple | 각 attribute 값으로 이루어진 리스트 |
relation | 튜플의 집 |
relation schema
- relation의 구조 나타냄
- STUDENT(id,name,grade,phone,emer_phone)
degree of a relation
- relation schema에서 attribute의 수
📁 key
🗝️ superkey
ralation에서 튜플을 식별할 수 있는 attributes set
🗝️ candidate key
어느 한 attribute라도 제거하면 유니크하게 튜플을 식별할 수 없는 super key
🗝️ primary key
relation에서 튜플을 유니크하게 식별하기위해 선택된 candidate key / 유일한 것을 식별하는 것
🗝️ unique key
primary key가 아닌 candidate keys
{team_id,back_number}
🗝️ foreign key
다른 relation PK를 참조하는 attributes key
상속되는 느낌
📁 constraints
🔒implicit constraints
- relational data model 자체가 가지는 constraints
- relation은 중복되는 tuple을 가질 수 없다
- relation 내에서는 같은 이름의 attribute를 가질 수 없다
🔒domain constraints
- attribute의 value는 해당 attribute의 domain에 속한 value여야 한다
🔒key constraints
- 서로 다른 tuples는 같은 value의 key를 가질 수 없다
🔒null value constraint
- attribute가 not null로 명시됐다면 NULL을 값으로 가질 수 없다
🔒entity integrity constraints
- primary key는 value에 NULL을 가질 수 없다
🔒referential integrity constraint
- FK와 PK와 도메인이 같아야 하고 PK에 없는 values를 FK가 값으로 가질 수 없다
📁 MYSQL 및 InnoDB
데이터를 저장하고 관리하는 데 사용되는 RDBMS(관계형 데이터베이스 관리 시스템). 스토리지 엔진에는 InnoDB,MYlSAM 등이 있다. 트랜잭션 처리가 필요하고 대용량의 데이터를 다루기 위해서 효율적인 시스템. InnoDB는 In-memory 구조로, 데이터와 인덱스를 메모리에 캐싱하기 위한 버퍼 풀이라는 저장영역을 유지 관리한다.
참고영상
BJ.35 관계형DB (relational database), relation, primary key(기본키), foreign key(외래키), constraints 개념
'데이터베이스' 카테고리의 다른 글
[DB] 인덱스 (0) | 2025.04.20 |
---|---|
[DB] SQL (0) | 2025.04.13 |
[DB] 데이터조회 _ SELECT (0) | 2025.04.12 |
[DB] SQL의 개념 (0) | 2025.04.11 |