데이터란 컴퓨터 안에 기록되어 있는 숫자를 의미하며, 이러한 데이터의 집합을 데이터베이스라고 한다.
넓은 의미에서는 "컴퓨터 안에 기록된 모든 것"을 데이터베이스라고 하지만, 일반적으로 데이터베이스라는 개념은 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 데이터의 집합을 말한다.
위 그림은 영화 데이터로, 영화의 title
, release_year
, length
, replacement_cost
를 저장하고 있다.
이러한 데이터들은 보통 데이터베이스 관리시스템 (DBMS, Database Management System)
으로 제어하고 관리한다.
데이터베이스 관리 시스템(DBMS, Database Management System)
은 데이터베이스를 효율적으로 관리하는 소프트웨어를 말합니다. 저장장치 내에 저장된 데이터의 집합인 데이터베이스는 다른 개념이다.
- 데이터를 보존하기 위해서
- 체계적으로 관리할 수 있다.
- 생산성 : 시스템 개발 과정에서의 생산성 향상
->데이터검색(Read), 추가(Create), 삭제(Delete), 갱신(Update)- 기능성 : 데이터베이스를 다루는 고급 기능 제공
->복수의 유저 요청 대응, 대용량 데이터 저장, 고속 검색, 기능 확장의 유연함.- 신뢰성 : 하드웨어를 여러 대로 구성하여 신뢰성을 높이는 동시에 성능 향상 도모
->확장성(Scalablity), 부하 분산(Load balancing), 데이터 추출, 데이터 리스토어
->정리하면, 데이터베이스 관리 시스템(DBMS, Database Management System)은 데이터베이스를 관리하는 소프트웨어로, 사용 목적은 생산성 향상과 기능성, 신뢰성 확보에 있다.
2차원 테이블(table) 예시
- Column (열) : 컬럼은 테이블의 각 항목 (
id
,책 제목
,작가
,출판사
,가격
)을 의미합니다.- Row (행) : 로우는 각 항목들의 실제 값입니다. 2번 행을 보면,
갈매기의 꿈
,리처드 바크
,나무옆의자
,11,520
이라는 실제 값이 있습니다.- 각 로우는 저만의
고유 키(Primary Key)
가 있습니다.
- 모든 데이터들은 2차원 테이블(Table)들로 표현할 수 있다.
- 테이블의 각 행(row)은 저만의 고유 키(Primary Key)가 있다.
- 각각의 테이블들은 서로 상호 관련성을 가지고 서로 연결될 수 있다.
(데이터베이스를 구성하는 테이블은 수백, 수천 개가 될 수도...)
One to One (일대일)
하나의 A테이블 데이터는 오로지 하나의 B테이블 데이터와 연결됩니다.
예)주민등록번호
- 테이블
Users
: 한국 사람들의 이름 정보를 갖고 있는 테이블- 테이블
Identification numbers
: 한국 사람들의 주민등록 번호를 갖고 있는 테이블
- Identification numbers 테이블의 user 컬럼은 users 테이블의 id(pk)를 참조합니다.
이와 같은 경우에서 테이블 Users와 테이블 Indentification은 서로
일대일
관계이다. 라고 표현합니다.
One to Many (일대다)
하나의 A 테이블 데이터는 B 테이블의 여러 데이터와 연결됩니다.
- Users 테이블의 로우 하나는 Pets 테이블의 여러 로우와 연결됩니다.
- Pets 테이블의 로우 하나는 Users 테이블의 로우 하나와 연결됩니다.
- Pets 테이블의 user_id 컬럼은 users 테이블의 id(pk)를 참조합니다.
이와 같은 경우에서 테이블 users와 테이블 pets는 서로
일대다
관계이다. 라고 표현합니다.
Many to Many (다대다)
하나의 A 테이블 데이터는 B 테이블의 여러 데이터와 연결될 수 있습니다.
- Authors 테이블의 로우 하나는 Books 테이블의 여러 로우와 연결됩니다.
- Books 테이블의 로우 하나 또한 Authors 테이블의 여러 로우와 연결됩니다.
이렇게 두 테이블이 서로 각자 다른 테이블의 여러 데이터와 연결 될 때에는 두 테이블에 속한 데이터의 조합을 입력하기 위한
중간 테이블
이 하나 생성됩니다.
이와 같은 경우에서 테이블 authors와 테이블 books는 서로다대다
관계이다. 라고 표현합니다.
관계형 데이터의 강력한 특징
ACID(Atomicity, Consistency, Isolation, Durability)
트랜잭션(Transaction)