1. 데이터베이스

데이터베이스는 정보 시스템 내부에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당한다.

 

정보시스템은 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어주는 수단이다.

데이터베이스는 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영데이터의 집합체이다.

특징으로는 1) 실시간 접근, 2) 계속 변화, 3) 내용 기반, 4) 동시 공유 가 있다.

 

데이터베이스 관리 시스템(DBMS)은 데이터베이스를 생성하여 안정적이고 효율적으로 운영하는데 필요한 기능들을 제공하는 소프트웨어이다.

DBMS의 종류에는 RDBMS(관계형 데이터베이스)와 NoSQL(Non SQL 또는 Non relational)이 있다.

 

1) RDBMS

RDBMS는 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템인데, 관계형 모델은 술어 논리와 집합론에 기반을 두어 데이터를 "관계로서" 표현한다.

즉, 행과 열의 집합으로 구성된 테이블 묶음 형식으로 데이터를 제공한다. 

그리고 테이블 형식의 데이터를 조작할 수 있는 관계 연산자가 SQL이다. RDBMS는 SQL을 제공한다.

RDBMS에서는 '무결성 원칙'이 가장 중요한데, 이는 데이터베이스에 정확한 데이터가 유지되고 있음을 보장하는 것이다.

RDBMS의 종류로는 MySQL, Microsoft SQL Server가 있다.

 

2) NoSQL

NoSQL의 데이터베이스는 전통적인 관계형 데이터베이스보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다.

빅데이터, 대량 트래픽 저장과 동시성이 높은 조회에 뛰어나다.

"많은 사용자들이 늘 동일한 데이터를 보지 않아도 된다"는 전제 하에 개발되었다.

NoSQL의 종류로는 mongoDB, cassandra, redis가 있다.

mongoDB는 문서 등의 대용량 파일에 적합하다.

cassandra는 data 속성을 특정 값으로 하나의 컬럼에 넣는다는 특징이 있다.

redis는 <key-value> 메모리성 데이터베이스로 "=" 연산을 빠르게 할 수 있다는 특징이 있다.

 

2. 관계 데이터 모델

데이터 모델링이란 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정이다.

 

관계 데이터 모델은 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델이다.

하나의 개체에 대한 데이터를 하나의 릴레이션(Relation)에 저장한다.

 

릴레이션이란 하나의 개체에 관한 데이터를 2차원 데이블의 구조로 저장한 것이다. 

 

학번 학생이름 주소 생년월일 전공번호 휴학여부
INT VARCHAR VARCHAR CHAR INT CHAR
1578398 홍길동 전라남도 광주시 19980823 123 N
1628739 이지은 경상북도 대구 20001201 107 Y

위의 예시가 하나의 릴레이션이고, 현재 두 개의 개체가 저장되어 있다.

 

① 관계 데이터 모델의 기본 용어

1) 속성 attribute (열) : 파일 관리 시스템 관점에서 '필드'에 대응

2) 투플 tuple (행): 파일 관리 시스템 관점에서 '레코드'에 대응

3) 도메인 domain: 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의

                        속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨

 

위의 예시에서 학번, 학생이름, 주소, 생년월일, 전공번호, 휴학여부가 속성이다.

홍길동, 이지은이 투플이며, INT, VARCHAR, CHAR가 도메인이다.

 

 

② 릴레이션의 구성

1) 릴레이션 스키마

릴레이션 스키마는 릴레이션의 논리적 구조로, 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의된다.

정적인 특징이 있다. (한번 만들어지면 거의 변경이 없다.)

ex) 학생 (학번, 학생이름, 주소, 생년월일, 전공번호, 휴학여부)

 

2) 릴레이션 인스턴스

릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 투플들의 집합으로, 동적인 특징이 있다.

위의 예시에서는 학생 한 명 한 명이 각각 인스턴스가 된다.

 

 

③ 데이터베이스의 구성

1) 데이터베이스 스키마

데이터베이스 스키마는 데이터베이스의 전체 구조로, 데이터베이스를 구성하는 각각의 릴레이션 스키마의 모음이다.

 

2) 데이터베이스 인스턴스

데이터베이스 인스턴스는 데이터베이스를 구성하는 각각의 릴레이션 인스턴스의 모음이다.

 

 

④ 릴레이션의 특성

1) 투플의 유일성: 하나의 릴레이션에는 동일한 투플이 존재할 수 없다. (모든 속성의 값이 동일한 투플 X)

2) 투플의 무순서: 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.

3) 속성의 무순서: 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.

4) 속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다.

(더이상 분해할 수 없는 속성 = 단순 속성 -> data의 일관성)

단순속성 ↔ 복합 속성 ex) 주소는 '시', '도', '군' 의 단순 속성 여러 개를 활용하여 구현이 가능하다.

 

 

키(KEY) 정의와 특성

1) 키의 정의: 릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합

2) 키의 특성

 - 유일성: 하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 한다.

 - 최소성: 꼭 필요한 최소한의 속성들로만 키를 구성해야 한다.

 

⑥ 키의 종류와 관계

1) 수퍼키(super key): 유일성을 만족하는 속성 또는 속성들의 집합

2) 후보키(candidate key): 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

3) 기본키(primary key): 후보키 중에서 기본적으로 사용하기 위해 선택한 키

4) 대체키(alternate key): 기본키로 선택되지 못한 후보키

출처) 숙명여자대학교 비교과 프로그램 '데이터베이스와 SQL' 강의자료

 

5) 외래키(foreign key): 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

                              릴레이션들 간의 관계를 표현

'Database > SQL' 카테고리의 다른 글

[MySQL] SQL 옵티마이저  (0) 2021.01.18
[MySQL] 데이터 제어어 : DCL  (0) 2021.01.18
[MySQL] Titanic 예제  (0) 2021.01.11
[MySQL] University DB 예제  (0) 2021.01.10
[MySQL] MySQL 설치하기  (0) 2021.01.10

+ Recent posts