티스토리 뷰
1. 관계형 데이터베이스 개요
① 데이터베이스
▷ DBMS ( DataBase Management System )
: 기본적인 효율적인 데이터 관리 요구사항을 만족시켜주는 시스템.
DBMS 는 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공한다.
테이블 생성 시, 사용할 수 있는 다양한 제약조건을 이용하여 사용자가 실수로 조건에 위배되는 데이터를 입력하거나,
중요 데이터를 삭제하는 것을 방지하여 데이터 무결성(Integrity)을 보장한다.
시스템의 갑작스런 장애로부터 사용자가 입력, 수정, 삭제하던 데이터가 제대로 반영될 수 있도록 보장해주는 기능이 있다.
+ 데이터 회복/복구 기능도 있다.
※ 관계형 데이터베이스 ( Relational Database )
현재 기업에서 사용하는 대부분의 데이터베이스는 기존 관계형 데이터베이스에 객체 지원 기능을 추가한 객체 관계형 데이터베이스를 사용하지만, 현실적으로 기업의 핵심 데이터는 대부분 관계형 데이터베이스 구조로 저장이 된다.
관계형 데이터베이스를 유일하게 조작할 수 있는 SQL 문장에 의해 관리되서, 관계형 데이터베이스와 SQL은 중요하다.
② SQL ( Structured Query Langauge )
: 관계형 데이터베이스에서 데이터 정의, 데이터 조각, 데이터 제어를 하기 위해 사용하는 언어이다.
정확한 데이터 출력이 목표이고, SQL 튜닝의 목적은 SQL을 가장 효과적( 응답시간, 자원 활용 최소화 )으로 작성하는 것이다.
관계형 데이터베이스는 수학의 집합 논리에 입각한다. 따라서 데이터를 집합으로써 취급한다.
특정 데이터들의 집합에서 필요로 하는 데이터를 조회, 새로운 데이터를 입력/수정/삭제한다.

명령어의 종류 | 명령어 | 설명 |
데이터 조작어 ( DML ) |
SELECT | 데이터베이스에 들어있는 데이터를 조회/검색하기 위한 명령어. |
INSERT | 데이터베이스의 테이블에 들어있는 데이터에 변형을 가하는 종류의 명령어. 데이터를 테이블에 새로운 행을 집어 넣거나, 데이터를 삭제하거나 수정하는 것 들의 명령어. (DML) |
|
UPDATE | ||
DELETE | ||
데이터 정의어 ( DDL ) |
CREATE | 데이터 구조( 테이블 )를 정의하는데 사용되는 명령어. 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어. (DDL) |
ALTER | ||
DROP | ||
RENAME | ||
데이터 제시어 ( DCL ) |
GRANT | 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어. (DCL) |
REVOKE | ||
트랜잭션 제어어 ( TCL ) |
COMMIT | 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어. (TCL) |
ROLLBACK |
* SQL 명령어는 3가지 SAVEPOINT 그룹인 DDL, DML, DCL 로 나눈다.
TCL의 경우 일부에서 DCL로 분류하기도 하지만, 다소 성격이 다르므로 별도의 4 번째 그룹으로 분리한다.
③ TABLE

데이터는 관계형 데이터베이스의 기본 단위인 테이블 형태로 저장된다.
모든 자료는 테이블에 등록되고, 원하는 자료를 테이블에서 꺼낼 수 있다.
▷ Table (테이블) : 어느 특정한 주제와 목적으로 만들어지는 일종의 집합.

새로운 선수를 입력하려면, 새로운 테이블 생성할 필요 없이 데이터만 추가하면 된다.
표에서 가로줄의 '선수, 팀, 팀연고지, 포지션, ... ,몸무게' 는 각각의 칼럼이 되며, 해당 테이블은 반드시 하나 이상의 칼럼을 가져야 한다.

테이블은 데이터를 저장하는 객체( Object )로서 관계형 데이터베이스의 기본 단위이다.
관계형 데이터베이스에서는 모든 데이터를 칼럼과 행의 2차원 구조이다.

세로 방향 ( 칼럼 : Column )
가로 방향 ( 행 : Row )
칼럼과 행이 겹쳐지는 하나의 공간을 필드 ( Field ) 라고 한다.
※ 테이블 용어
용어 | 설명 |
테이블 (Table) |
행과 칼럼의 2차원 구조를 가진 데이터의 저장 장소. 데이터베이스의 가장 기본적인 개념. |
칼럼 / 열 (Column) |
테이블에서 세로 방향으로 이루어진 특정 속성. (더이상 나눌 수 없는 특성) |
행 (Row) |
테이블에서 가로 방향으로 이루어진 연결된 데이터. |
분할된 테이블은 그 칼럼의 값에 의해 연결된다.
※ 정규화 ( Normalization ) : 테이블을 분할하여 데이터의 불필요한 중복을 줄이는 것이다.
데이터의 정합성 확보와 데이터 입력/수정/삭제시 발생할 수 있는 이상현상을 방지하기 위해 정규화는 관계형 데이터베이스 모델링에서 매우 중요한 프로세스이다.

※ 테이블 관계 용어
용어 | 설명 |
정규화 (Normalization) |
테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스. |
기본키 (Primary Key) |
테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼 |
외부키 (Foreign Key) |
다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼 |
④ ERD ( Entity Relationship Diagram )
: 어떤 의미의 관계가 존재, 테이블 간의 어떤 의미의 연관성이나 관계가 존재하는지.
ERD는 이러한 관계의 의미를 직관적으로 표현할 수 있는 좋은 수단이다.

※ E-R 다이어그램 : 테이블 간 서로의 상관 관계를 그림으로 도식화한 것.
* Entity : 엔터티
* Relationship : 관계
* Attribute : 속성
현실 세계의 데이터는 이 3 가지 구성 요소로 모두 표현이 가능 하다.
'SQL > SQLD 2과목' 카테고리의 다른 글
SQLD - 과목2. (6) 함수 (FUNCTION) (0) | 2021.03.16 |
---|---|
SQLD - 과목2. (5) WHERE 절 (0) | 2021.03.11 |
SQLD - 과목2. (4) TCL (0) | 2021.03.08 |
SQLD - 과목2. (3) DML (0) | 2021.03.05 |
SQLD - 과목2. (2) DDL (0) | 2021.03.03 |
- Total
- Today
- Yesterday
- 백준 별찍기
- python문법
- 파이썬 입출력
- 파이썬sum
- python별찍기
- 알고리즘
- 백준
- range함수
- NaverCloudPlatform
- Unity GameObject 생성
- 데이터베이스
- SQLD 1과목
- SQLD
- BAEKJOON
- f-string
- 파이썬for문
- 파이썬
- Python
- 백준파이썬
- 40회 SQLD
- 파이썬입출력
- 파이썬문법
- 백준별찍기
- 데이터 모델링
- 별 찍기
- SQLD40회
- SQLD1과목
- 네이버클라우드플랫폼
- SUM함수
- SQLD 2과목
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |