데이터베이스
시스템에서 사용하는 데이터가 모여있는 물리적 공간
DBMS
데이터베이스를 제어할 수 있는 시스템을 의미함 ex) mysql
관계형 DBMS
데이터베이스 안의 데이터 구조가 테이블과 테이블 사이
관계로 표현되어 있는 구조를 의미
데이터베이스 안에 테이블과 관계가 구조화 되어 있지 않으면 데이터를 제어할 수 없음
모델링을 거쳐 데이터베이스의 구조를 정한 후 스키마를 생성한 후 데이터를 제어할 수 있음
스키마
테이블과 사이 관계 구조를 의미
mysql에서는 데이터베이스 하나를 의미
모델링
데이터베이스 안에 테이블과 관계를 도식화한 상태
관계형DBMS에서의 모델링은 3단계를 거처 모델링 진행
1. 외부단계
: 개별적 사용자 또는 페이지에서 바라보는 관점
시스템에 필요한 페이지별로 데이터를 전부 일렬로 나열
2. 개념단계
: 조직 전체의 관점
외부단계에서 도출된 모든 데이터 중 중복데이터는 제거
3. 내부단계
: 물리적인 저장장치의 관점
개념단계에서 정리된 데이터별로 타입을 정함
타입은 테이블 -> 각 테이블끼리의 관계를 명시
관계는 테이블과 테이블 사이 선으로 표시
관계의 종류는
1:1 관계
->
테이블의 로우(객체)가 서로 하나씩만 관계가 있는 경우
상위테이블의 상세 정보 테이블의 경우.
회원 테이블과 회원 부가정보 테이블
1:n 관계
-> 테이블의 로우(객체)가 서로 한개와 여러개씩 관계가 있는 경우
상위테이블과 하위테이블 간의 관계.
게시글 테이블과 댓글 테이블
n:m 관계
-> 테이블의 로우(객체)가 서로 여러개씩 관계가 있는 경우
4. 내부단계에서 그려진 모델링을 토대로 정규화 진행
정규화
: 모델링된 데이터베이스 구조의 결함을 발견하고 조치하는 것을 의미
보편적으로 3단계까지 진행
5. 정규화된 논리적 모델링을 가지고 물리적 모델링을 통하여 완성
DBMS의 기능
1. 정의기능
2. 조작기능
3. 제어기능
SQL
- DBMS를 통하여 데이터베이스와 소통할 수 있는 언어
- DBMS를 통하여 데이터베이스를 제어하거나 데이터를 요청하여 응답을 받을 수 있는 언어
- SQL을 활용하여 데이터베이스의 주요기능을 수행할 수 있다
- DBMS의 3가지 기능을 제어할 수 있다
DDL 데이터 정의어
- 데이터베이스 내부 테이블 구조를 정의할 수 있다(데이터베이스 정의 기능 수행)
- 스키마를 정의, 수정, 삭제 등의 정의 기능을 할 수 있는 문법
- create table(테이블 생성), alter table(테이블 수정), drop table(테이블 삭제)
DML 데이터 조작어
- 데이터베이스 내부 데이터를 조작할 수 있다(데이터베이스 조작 기능 수행)
- 데이터베이스의 데이터를 조작하는 문법
- 데이터 추가, 수정, 삭제, 조회
- select(데이터 조회), insert(데이터 삽입), update(데이터 수정), delete(데이터 삭제)
DCL 데이터 제어어
- 데이터베이스 내부 설정 등을 제어할 수 있다(데이터베이스 제어 기능 수행)
- 데이터베이스의 롤백, 커밋 등의 데이터베이스를 제어하는 문법
- sql 구문 처리 확정 또는 실행한 구문 취소 처리
- grant, rollback, commit
관계형 DBMS의 특징
릴레이션(테이블) : 행이 중복될 수 없다. 행의 순서는 중요하지 않다.
속성의 순서도 중요하지 않다. 속성값은 모두 원소성을 띄어야 한다
키 : 기본키, 외래키
기본키(결정권자,PrimaryKey,PK) : 릴레이션의 한 행을 특정하는 결정권자 역할
중복될 수 없다(유일해야 한다), 생략할 수 없다(not null)
외래키(ForeignKey,FK) : 하위테이블에서 상위테이블 데이터 한 건을
참조할 수 있는 값을 담는 컬럼
외래키 무결성 제약조건에 위배되면 데이터를 하위 테이블에 추가할 수 없다
외래키 무결성 제약조건 : 상위 테이블에 존재하지 않는 데이터는
외래키 필드의 데이터로 추가할 수 없다
속성 : 열, 어트리뷰트, 필드, 컬럼
튜플 : 행, 레코드
도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합. 타입
차수 : 속성의 전체 개수
카디널리티 : 하나의 릴레이션에서 튜플의 전체 개수
정규형
1차 정규형
모든 컬럼의 데이터가 원소성을 띄어야 한다
컬럼들이 완전함수 종속성을 띄지 않았을 경우
중복 데이터로 인하여 갱신 이상현상이 발생할 수 있다
2차 정규형
1차 정규형을 만족하면서 모든 컬럼이 결정권자 컬럼에
완전 함수 종속성을 띄어야 한다
3차 정규형
2차 정규형을 만족하면서 결정권자 컬럼을 타고
다른 컬럼을 통하여 값이 결정되는 컬럼이 존재하지 않도록 해야한다
이행함수 종속 끊어내기
'MySQL' 카테고리의 다른 글
[MySQL] SELECT문 WHERE BETWEEN, IN(),LIKE, 서브쿼리 (0) | 2024.09.03 |
---|---|
[MySQL] DML 데이터조작어 SELECT문 (2) | 2024.09.02 |
[MySQL] DML 데이터조작어 INSERT문 (0) | 2024.09.01 |
[MySQL] DDL 데이터 정의어 (0) | 2024.08.31 |
[MySQL] 유저 생성, 권한 부여 (0) | 2024.08.31 |