1장 SQL 기본
[1] 관계형 데이터베이스 개요
1. 데이터베이스
DBMS : 효율적인 데이터 관리, 데이터 손상을 피하고, 데이터 복구를 위한 시스템
Database Management System
관계형 데이터베이스 RDBMS
파일 시스템 : 하나의 파일을 많은 사용자가 동시게 검색은 가능, 동시에 입력,수정,삭제는 불가
-> 정보의 관리가 어려움
따라서 여러 개의 데이터 파일이 존재하는데, 동일한 데이터가 여러 곳에 저장되는 문제가 발생
-> 데이터의 불일치성 발생
-> 데이터 간의 정합성을 보장이 힘들다.
관계형 데이터베이스 : 정규화 -> 이상현상 제거, 데이터 중복 피하고, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터 공유, 조작 기능 제공
또한 메타 데이터를 총괄 관리할 수 있기 때문에 체계화 가능, 데이터 표준화를 통한 데이터 품질 확보 가능
DBMS는 인증된 사용자만이 참조할 수 있또록 보안 기능을 제공
: 데이터 무결성 보장, 데이터 회복/복구 기능 제공
2. SQL
SQL이 시스템에 미치는 영향이 크다 : 고급 SQL / SQL 튜닝의 중요성 증가
RDBMS는 수학의 집합 논리에 입각해 SQL도 데이터를 집합으로써 취급
포지션이 미드필더인 선수의 정보를 검색 :
선수라는 큰 집합 -> 포지션이 미드필더인 조건을 만족하는 요구 집합 추출
데이터 조작어 Data Manipulation Language : SELECT / INSERT, UPDATE, DELETE : 조회 / 데이터 변형
데이터 정의어 Data Definition Language : CREATE, ALTER, DROP, RENAME : 구조 정의
데이터 제어어 Data Control Language : GRANT, REVOKE : 권한
트랜잭션 제어어 Transaction Control Language : COMMIT, ROLLBACK : 논리적인 작업의 단위인 트랜잭션 별로 제어
[단, TCL을 DCL로 분류하는 경우도 있다.]
3. TABLE
키는 키대로, 몸무게는 몸무게대로, 데이터의 순서를 정해서 비교하는 방법
테이블 : 데이터를 저장하는 객체로 관계형 데이터베이스의 기본 단위
2차원 구조로 나타내는데, 가로는 칼럼과 세로는 행이며, 겹치는 하나의 공간은 필드
선수 관련 데이터
선수 테이블 / 구단 테이블
분할 된 테이블은 그 칼럼의 값에 의해 연결
정규화 : 테이블을 분할해 데이터의 불필요한 중복을 줄이는 것
-> 데이터 정합성 확보, 이상현상 방지 [데이터베이스 모델링에서 매우 중요한 프로세스]
기본키 : 각 행을 한 가지로 특정할 수 있는 한 개 이상의 칼럼
선수 테이블-> 선수번호, 구단 테이블-> 구단코드
기본키 : 선수 테이블 -> 구단코드와 같이 다른 테이블의 기본 키로 사용되면서 테이블과의 관계를 연결하는 칼럼
4. ERD
팀정보와 선수 정보 간에는 다른 테이블과 연관성이나 관계가 존재하는데
ERD : 이와 같은 관계를 직관적으로 표현 가능
팀 <- 소속 -> 선수
ERD의 구성요소 : 엔터티, 관계, 속성
테이블 간의 양방향 관계 :
하나의 팀은 여러 명의 선수 포함 가능
한 명의 선수는 하나의 팀에 꼭 포함
하나의 팀에는 하나의 전용 구장 꼭 가짐
하나의 운동장은 하나의 홈팀 소유 가능
하나의 운동장은 여러 게임의 스케줄 가능
하나의 스케줄은 하나의 운동장에 꼭 배정
축구팀과 축구선수는 비식별 관계로 -> 축구팀 하나에 축구선수 여러명
경기장과 일정 및 스코어는 식별관계 -. 경기장 하나에 일정 및 스코어 여러개
축구팀과 경기장은 비식별관계 -> 축구팀 하나에 경기장 하나씩
부서와 사원 테이블
부서와 사원은 비식별 관계로
하나의 부서는 여러 명의 사원을 보유 가능
한 명의 사원은 하나의 부서에 꼭 소속
'Data Science > SQLD' 카테고리의 다른 글
[SQLD] SQL 기본 1-4. TCL (Transaction Control Language) (0) | 2021.09.16 |
---|---|
[SQLD] SQL 기본 1-3. DML (Data Manipulation Language) (0) | 2021.09.15 |
[SQLD] SQL 기본 1-2. DDL (Data Definition Language) (0) | 2021.09.10 |
[SQLD] 데이터 모델링의 이해 1-1. 데이터 모델의 이해 (0) | 2021.09.09 |
[SQLD] SQL 개발자 자격 공부하기 (0) | 2021.08.21 |