반응형
데이터베이스?
- 전자적으로 저장되고 사용되는 관련된 데이터들의 조직화된 집합
- 데이터를 체계적으로 관리하고 효율적으로 저장, 검색, 수정할 수 있도록 구성된 시스템
DBMS (Database Management Systems)
- 데이터베이스를 정의, 생성, 관리하는 소프트웨어 시스템
- 사용자가 쉽게 다룰 수 있도록 인터페이스 제공
- 데이터의 일관성과 무결성을 유지하며, 여러 사용자가 동시에 데이터를 활용할 수 있도록 지원
- 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
메타데이터(MetaData)
- 데이터를 정의하고 설명하는 데이터
- 데이터의 데이터라고 표현함
- 데이터의 구조, 형식, 저장 방식, 제약 조건, 보안 설정 등을 포함
- 카탈로그(Catalog)라고도 불리며, DBMS에서 저장 및 관리됨
- ex)
- 테이블 이름: User
- 컬럼 정보: id(INT, PRIMARY KEY)
- 인덱스 정보: PRIMARY KEY(id)
- 접근 권한 정보: admin 사용자만 DELETE 가능
데이터베이스 시스템
- 데이터베이스 + DBMS + 관련 애플리케이션
- 데이터 저장, 관리, 검색 기능을 하나의 시스템으로 구성
데이터 모델(Data Models)
- 데이터베이스의 구조를 정의하는 개념적 틀
- 데이터를 추상화하여 표현하는 방식
- 데이터를 저장하고 활용하는 방법을 정의하며, 데이터 간의 관계 및 제약 조건도 포함
- DB에서 읽기, 쓰기, 수정, 삭제와 같은 기본 동작을 포함
종류
개념적 데이터 모델 (Conceptual (or high-level) Data Models)
- 사용자가 이해하기 쉬운 개념으로 데이터 구조를 표현
- 비즈니스 요구 사항을 중심으로 설계
- Entity-Relationship Model(ER-diagram)
논리적 데이터 모델 (Logical (or representational) Data Models)
- 실제 DBMS에서 데이터가 저장될 구조를 정의
- 특정 DBMS에 종속되지 않음(ex) MySQL, PostgreSQL 등에서 사용 가능)
- ex)
- 관계형 데이터 모델(Relational Data Model): 테이블(행, 열)로 구성
- 객체 데이터 모델(Object Data Model): 객체 지향 개념 적용
- 객체-관계형 데이터 모델(Object-Relational Data Model): 관계형 모델과 객체지향 개념을 결합
물리적 데이터 모델(Physical (or low-level) Data Models)
- 데이터가 컴퓨터에 파일 형태로 저장되는 방식을 정의
- 데이터의 포맷, 저장 순서, 접근 경로 등을 포함
- ex)
- 엑세스 경로(Access Path): 데이터를 빠르게 찾기 위한 구조(e.g.) 인덱스)
스키마(Schema) & 상태(State)
스키마(Schema)
- 데이터베이스의 구조를 정의하는 설계도
- 한 번 정해지면 자주 바뀌지 않음
- 테이블, 컬럼, 데이터 타입, 관계, 제약 조건 등을 포함
- ex)
- CREATE TABLE Users(
- id INT PRIMARY KEY,
- name VARCHAR(50),
- email VARCHAR(100), UNIQUE
- );
상태(State)
- 데이터베이스에 저장된 실제 데이터 값
- 시간이 지나면서 변할 수 있음 -> 상태는 계속 바뀜
- 특정 순간의 상태를 스냅샷(Snapshot)이라고도 함
- ex)
- id name email
- 1 홍길동 hong@gmail.com
3단계 스키마 구조(Three-Schema Architecture)
- 사용자 관점과 물리적 데이터 저장 방식을 분리하여 유연성 제공
- 3가지 레벨에서 스키마를 정의하여 변경이 다른 레벨에 영향을 주지 않도록 설계
외부 스키마(External Schemas)
- 사용자 관점에서 필요한 데이터만 표현
- 특정 유저나 애플리케이션에 필요한 정보만 제공(보안 목적 포함)
개념 스키마(Conceptual Schmas)
- 데이터베이스 전체 구조를 기술
- 데이터의 논리적 관계를 정의(엔티티, 속성, 관계, 제약 조건 등)
- ex) ER 다이어그램, 관계형 모델(테이블, 키, 관계 등)
내부 스키마(Internal Schmas)
- 데이터가 물리적으로 저장되는 방식(파일 구조, 저장 포맷, 인덱스 등)
- 성능 최적화를 위해 저장 방식 변경 가능
각 레벨을 독립시켜서 어느 레벨에서 변화가 상위 레벨에 영향을 주지 않기 위함
대부분의 DBMS가 Three-Level을 완벽하게 혹은 명시적으로 나누지는 않음
데이터가 존재하는 곳은 Internal Level
데이터베이스 언어(Database Languages)
- 데이터베이스를 정의, 조작, 관리하는데 사용되는 언어
- 1. DDL(Data Definition Language): 데이터베이스 구조 정의
- 테이블 생성, 변경, 삭제
- CREATE, ALTER, DROP
- 2. DML(Data Mainpulation Language): 데이터 조작
- 추가, 수정, 조회, 삭제
- INSERT, UPDATE, SELECT, DELETE
- 3. SDL(Storage Definition Language): 물리적 저장 구조 정의
- 예전에는 따로 존재했으나 현재는 DB 설정값으로 대체됨
- 4. VDL(View Definition Language): 외부 스키마(뷰) 정의
- 일반적으로 DDL과 통합됨
- CREATE VIEW
- 오늘날은 대부분 SQL이 모든 기능을 통합
- SQL (Structured Query Language): 관계형 데이터베이스에서 DDL, DML, VDL 등을 통합한 언어
**내용 및 이미지 출처: https://www.youtube.com/watch?v=aL0XXc1yGPs (쉬운 코드)
반응형
'IT' 카테고리의 다른 글
[DB 트랜잭션] @Transactional 속성(격리 수준 Isolation) (0) | 2025.03.04 |
---|---|
[DB 트랜잭션] @Transactional 속성(전파 방식 Propagation) (0) | 2025.02.27 |
[Spring Boot] Spring Boot 핵심 개념 10가지 (1) | 2025.02.24 |
[Auth] Spring Security AuthenticationException 처리 (2) | 2025.01.20 |
[정렬(Sort)] List, Array, Map 정렬 코드(Java) (0) | 2025.01.13 |