1. DB(Data Base : 데이터 장소)
데이터베이스 = 데이터의 집합
데이터베이스는 일상 생활 대부분의 정보가 저장되고 관리된다 !
오늘의 카카오톡 메세지나 인스타에 업로드한 사진이나 대중교통 탈 때도 모두 데이터베이스에 기록된다 !
2. DBMS(DataBase Management System : 데이터베이스 관리 시스템)
데이터를 ' 데이터의 집합 ' 이라고 정의한다면, 이런 데이터 베이스를 관리하고 운영하는 소프트 웨어를 DBMS 라고 한다.
다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.
예시로
예금 계좌를 갖고 있는 많은 사람들, 여러 명의 예금 계좌 정보를 모아 놓은 것이 데이터 베이스
은행이 가지고 있는 예금 계좌 데이터 베이스에는 여러 명이 동시에 접근할 수 있고, 예금 계좌 주인, 은행 직원, 인터넷 뱅킹, ATM 기 등 모두 접근이 가능 해야 한다. 이러한 것이 가능한 이유는 DBMS 가 있기 때문 !
DBMS 의 종류
DBMS 의 분류
DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류된다.
현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, MySQL도 관계형 DBMS에 포함됨 !
분류 | 특징 |
계층형 DBMS | - 처음 등장한 DBMS 개념 - 트리(tree) 형태 - 문제점 : 처음 구성을 완료한 후에는 변경하기 까다로움 : 다른 구성원을 찾아가는 것이 비효율적 - 현재 잘 사용하지 않는 형태 |
망형 DBMS | - 계층형 DBMS 문제점을 개선하기 위해 나온 DBMS - 문제점 : 망형 DBMS 를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능함 - 현재 잘 사용하지 않는 형태 |
관계형 DBMS | - MySQL 뿐만 아니라 대부분의 DBMS 가 RDBMS 형태로 사용됨 - 테아블(table) 이라는 최소 단위로 구성되며, 하나의 열(column) 과 행(row) 로 이루어짐 - 한글이나 워드에서 표의 모양이 테이블 - RDBMS 에서는 모든 데이터가 테이블에 저장됨 - 테이블과 테이블 사이의 관계를 나타낸 것 - 테이블을 다른 말로 relation(릴레이션) 이라 부름 |
SQL : DBMS 에서 사용하는 언어
SQL(Structured Query Language)은 관계형 데이터베이스에서 사용되는 언어로, ‘에스큐엘’ 또는 ‘시퀄’로 읽는다.
관계형 DBMS 중 MySQL 를 배우려면 SQL 을 필수로 익혀야 하는데,
SQL 이 데이터 베이스를 조작하는 '언어' 이긴 하지만 일반적인 프로그래밍 언어(자바, 파이썬 등) 로 생각하면 안된다
데이터베이스 용어
테이블 열 | 테이블 행 |
column(칼럼) | row(로우) |
field(필드) | record(레코드) |
attribute(속성) | tuple(튜플) |
Scheam : 스키마
RDBMS 내에서 데이터가 구성되는 방식을 정의
데이터베이스를 구성하는 자료 개체, 이들의 성질, 이들 간의 관계, 자료의 조작 및 자료 값들이 갖는 제약 조건에 관한 정의를 총칭해서 스키마 라고 말함 !
외부 스키마
- 응용 프로그래머나 사용자 그룹 입장에서의 데이터베이스 모습으로 조직의 일부분을 정의한 것
- 공유의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조
데이터 베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스
내부 스키마
- 물리적 저장 장치의 입장에서 본 데이터 베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고
저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
Domain : 도메인
대부분의 DBMS 에서 도메인이란 속성에 대응하는 컬럼에 대한 데이터 타입(Data Type) 과 길이를 의미한다.
두 속성의 도메인이 같다 라는 것은 두 속성의 데이터 타입과 길이가 같다는 것을 의미한다.
CREATE DOMAIN 도메인명 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK (범위 값)];
- 데이터 타입 : SQL에서 지원하는 데이터 타입
- 기본 값 데이터를 입력하지 않았을 때 자동으로 입력되는 값
Key 의 종류
슈퍼키 Super Key |
- 유일성을 만족하는 키 - 여러 개의 속성으로 키 구성 - 속성들의 집합으로 구성된 구성 - 보통 슈퍼키로 기본 키를 만듦 |
학번 + 이름 주민등록번호 + 학번 |
복합 키 Composite Key |
2개 이상의 속성(attribute)을 사용한 키 | |
후보키 Candidate Key |
- 유일성과 최소성을 만족하는 키 - 기본키가 될 수 있는 후보이기 때문에 후보키라고 불림 |
주민등록번호 학번 고객 아이디 |
★ 기본키 Primary Key |
- 사용에 따라 다르지만, 후보키에서 기준으로 삼을 키 - 중복 허용을 안하며, NULL 값이 들어갈 수 없음 - 반드시 값은 존재함 |
고객 번호 |
대체 키 Surrodate Key |
후보 키 중에 기본 키로 선택되지 않은 키 | 주민번호 고객 아이디 |
★ 외래키 Foreign Key |
- 다른 테이블의 후보 키를 가져온게 외래키 - null 값 허용 - 참조하는 테이블에 있는 값을 가져오는 건데, null 인 경우 가져오지 않은 것 - 중복 허용 됨 - 외래키로 다른 테이블과 관계형을 맺음 - 무결성 유지됨 ( 무결성 : 문제가 발생하지 않는 것 ) |
고객번호 |
시스템 카탈로그
사용자를 포함해 DBMS 에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 대한 정보를 유지 관리하는 시스템 테이블
좁은 의미로 카탈로그를 데이터 사전(Data Dictionary) 이라고 함
시스템 카탈로그에 저장된 정보를 메타 데이터(meta data)라고 말한다.
'Others > 데이터베이스' 카테고리의 다른 글
[SQL] DML (조작어) 문법 정리 및 예제 (0) | 2024.06.16 |
---|---|
006. 관계형 데이터베이스 SQL 및 모델링 - 2편 MySQL (0) | 2024.06.16 |
[MySQL] 자료형 CHAR 와 VARCHAR 의 차이점 (0) | 2024.06.13 |
[SQL] 예제 모음 - 1 (0) | 2024.06.12 |
옵티마이저 (0) | 2024.06.12 |