Database

BnDC·2021년 9월 11일
0

Basics

목록 보기
1/3
post-thumbnail

✨ Database


구조화된 데이터를 전기적인 형태로 저장한 저장소

구조화?
정보를 쉽게 인출 할 수 있도록 한 편성 방식

데이터?
넓은 의미에서 의미 있는 정보를 가진 모든 값




✨ DBMS(Database Management System)


database를 체계적이고 관리하고, 효율적으로 데이터를 처리 하기 위한 시스템 소프트웨어


엄밀히 말하면 데이터를 저장하는 공간을 database, 관리하는 시스템을 DBMS라고 하지만, database로 database와 DBMS를 통칭해서 부르는 경우가 많다. (편의를 여기서는 위해 넓은 의미의 database를 Databse로 표기)




✨Database(database+BDMS)를 사용하는 이유

database
데이터를 오래 보존하고 체계적으로 관리하기 위함

DBMS

  • 생산성 - 데이터 C(create),R(Read),U(Update),D(Delete)
  • 기능성 - 고속 검색, 기능 확장의 유연함
  • 신뢰성 - 부하 분산, 데이터 추출, 데이터 리스토어




✨ 관계형 데이터 베이스(RDBMS)

Relational Database Management System

  • 행과 열을 가진 2차원 표 형식으로 데이터를 저장하는 형태의 Database
  • 구성하고 있는 테이블들이 서로 상호관련성을 가지고 연결 되어 있다
  • 웹 시스템과 연동하여 널리 사용됌
  • MySQL, postgreSQL, Oracle 등이 있다.

MySQL 예시)

🎈 2차원 표 형식

  • column(열): 세로축 테이블의 각 항목(id, title, author, publisher, price)을 의미

  • row(행): 가로축 각 항목들의 실제 값

  • Primary Key(id): 각 row는 다른 row와 겹치지 않도록 하는 고유한 번호를 가지고 있다 PK를 이용해 특정 row를 찾거나 인용할 수 있다.


🎈 상호관련성

📍 One to One

테이블A의 하나의 row는 테이블B의 데이터 하나의 row와 연결될 수 있다.

테이블A row와 연결된 테이블B의 row 중 한 Column이 테이블A의 primary key를 참조한다 이 column을 foreign key라고 한다.

player table

team_uniform_number table

player + team_uniform_number table

선수들은 자신의 팀에서 하나의 번호만 부여 받을 수 있고, 그 번호를 달고 뛰는 선수는 그 팀에서 한명 뿐이다.

team_uniform_number table의 player_id가 player table의 id 값을 참조한다.

📍 One to Many

테이블A의 하나의 row는 테이블B의 여러 row들과 연결 된다.

테이블 A의 한 row와 연결된, 테이블B의 여러 row가 연결됨으로 테이블B의 foreign key는 중복 될 수 있다.

categories table

contents table

categories + contents table

영화, 노래, 책의 분류에 들어가는 많은 작품이 있지만, 작품은 영화 , 노래, 책 중 한 분류에만 속할 수 있다.

contents table의 categories_id가 categories table의 id 값을 참조한다. categories_id 값은 중복 될 수 있다.

📍 Many to Many

테이블A의 여러 row들과 테이블B의 여러 row들이 연결된다.

한 column에는 하나의 데이터만 들어가야 하기 때문에,
두 테이블에 속한 데이터들의 조합을 입력하기 위한 중간 테이블이 필요하다.

중간 테이블의 column들에는 테이블A와 테이블B의 id를 각각 참조하는 foreign key가 들어간다.

actors table

works table

중간 테이블

actors + works

✨ 트랜잭션

ACID를 보장하면서, 여러 작업이 마치 연결된 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두 다 실패하는 것을 의미

🎈 ACID

📍 원자성

중간 단계 까지 실행되고 실패하는 일이 없도록 하는 것

📍 일관성

트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태를 유지하는 것을 의미

📍 고립성

하나의 트랜잭션을 수행 시 다른 트랜잭션 작업이 방해 하지 못하도록 보장하는 것을 의미

📍 지속성

성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미

profile
“Life is C (Choice) between B (Birth) and D (Death).” - 인생은 B와 D사이의 C

0개의 댓글