본문 바로가기

데이터베이스

[DB] 데이터베이스란?

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