비전공자 개발일기

Database 본문

DB(MySQL)

Database

HiroDaegu 2021. 7. 21. 18:43
728x90
SMALL

관계형 데이터 베이스Relational Database)

용어

  • 릴레이션(Relation): 2차원의 테이블(엑셀의 스프레드 시트)
    1. 오직 하나의 레코드 타입만 포함
    2. 한 애트리뷰트 내의 값들은 모두 같은 유형
    3. 순서는 관계없음
    4. 동일한 튜플이 2개 이상 존재하지 않음(원자성)
    5. 순서는 관계없음
  • 레코드(Record): 릴레이션의 각 행
  • 튜플(Tuple): 레코드
  • 애트리뷰트(Attribute): 릴레이션에서 이름을 가진 하나의 열
  • 도메인(Domain): 한 애트리뷰트에 나타날 수 있는 값들의 집합, 원자성, 데이터 타입, 동일한 도메인이 여러 애트리뷰트에서 사용될 수 있음
  • 차수(Degree): 한 릴레이션에 들어 있는 애트리뷰트들의 수
  • 카디널리티(Cardinality): 릴레이션의 튜플 수
  • 널 값(Null): 아직 결정되지 않은 값
  • 릴레이션 스키마(Relation Schema) 
    1. 릴레이션의 이름과 애트리뷰트들의 집합, 릴레이션을 위한 프레임워크
    2. 표기법: 릴레이션이름(애트리뷰트1, 애트리뷰트 2 ...)
    3. 애트리뷰트 = 기본키
    4. 내포(Intension)
  • 릴레이션 인스턴스(Relaton Instance)
    1. 릴레이션에 어느 시점에 들어있는 튜플들의 집합
    2. 외연(Extension)
  • 릴레이션 키
    1. 슈퍼키(Super Key): 유일성은 있으나 최소성은 없음
    2. 후보키(Candidate Key): 각 튜플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임
    3. 기본키(Primary Key): 유일성, 최소성
    4. 대체키(Alternate Key): 기본키가 아닌 후보키
    5. 외래키(Foreign Key): 기본키를 참조하는 애트리뷰트
  • 무결성 제약조건
    1. 데이터 무결성(Data intergrity):  데이터의 정확성 또는 유효성
    2. 도메인 제약조건(Domain constraint): 각 애트리뷰트 값은 반드시 원자성
    3. (기본)키 제약조건(Key constraint): 기본키 애트리뷰트에 중복값 안됨
    4. 기본키와 엔티티 무결성 제약조건(Entity integrity constraint): 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널 값 가질 수 없음
    5. 외래키와 참조 무결성 제약조건(Referential integrity constraint): 두 릴레이션의 연관된 튜플들 사이의 일관성을 유지
    6. 데이터베이스에 대한 갱신 연산은 삽입, 삭제, 수정으로 구분

MySQL + Dbeaver로 공부 

 

-- 사용자 및 데이터베이스 확인
select user(), database();

-- utf8 확인
show variables like '%character%';

/*
SQL 
	1. DDL
		가. CREATE   (구조 생성, 데이터 베이스, 케이블)
		나. ALTER    (구조 수정)
		다. DROP     (구조 삭제)
	2. DML
		가. SELECT   (데이터 검색)
		나. INSERT   (데이터 삽입)
		다. UPADATE  (데이터 수정)
		라. DELETE   (데이터 삭제)
	3. DCL
	    가. ROLLBACK (취소)
	    나. COMMIT   (적용)
	    다. GRANT    (권한 부여)
 */

-- 데이터베이스 생성
drop database if exists coffee;
create database if not exists coffee;

use coffee;

select user(), database();

show tables;

-- 테이블 생성
/*
테이블명 : product(제품)
속성명  : code(코드), name(제품명)
*/

create table product (
	code varchar(4) primary key,
	name varchar(20) not null
);

-- 테이블 생성 확인
show tables;
desc product;

-- 데이터 추가(DML . INSERT)
insert into product(code, name) values
('A001', '아메리카노'),
('AOO2', '카푸치노'),
('A003', '헤이즐넛'),
('A004', '에스프레소');

-- 데이터 검색(DML . SELECT)
select code, name from product;

-- 데이터 수정(DML . UPDATE)
update product set name = '카페라떼' where code = 'A001';

-- 데이터 삭제(DML . DELETE)
delete from product where code = 'AOO2'
728x90
LIST

'DB(MySQL)' 카테고리의 다른 글

FIND_IN_SET()  (0) 2022.01.04
Database  (0) 2021.07.22