Major`/DB(16)
-
[DB] Transaction? ACID?
트랜잭션 (Transaction) - 여러 작업들을 하나로 묶은 단위 - 그렇게 묶여진 한 그룹단위 작업들은 모두 실행되거나 모두 실행되지 않는다 :: All-Or-Nothing 트랜잭션이 필요한 이유? Example) "A 은행 → B 은행으로 돈 보내기" 1. 일단 A 은행에서 보낼 돈을 출금해야 한다 2. B 은행으로 출금한 돈 보내기 여기서 (1) 과정을 마치고 은행 시스템이 마비되면? "돈은 A 은행에서 출금이 되었지만 해당 돈이 송금되지 않고 증발한다" >> Transaction을 통해서 데이터의 유효성을 보장해야 한다 ACID? - 데이터의 유효성을 보장하기 위해서, 트랜잭션의 특징들의 앞글자를 딴 단어 Atomicity (원자성) - 모든 작업이 반영되거나 모두 롤백되는 특성 >> COMM..
2022.03.05 -
[DB] MySQL 기본 CRUD
SHOW DATABASES - 현재 계정에서 접근 가능한 DB의 목록들을 보여준다 CREATE DATABASE 'sample' USE sample; CREATE DATABASE ~ : '~'라는 DB를 현재 계정에 생성 USE ~ : 현재 계정에서 '~'라는 DB를 사용하겠다 SHOW TABLES; SHOW TABLE STATUS; SHOW TABLES : USE를 통해서 사용하는 DB의 테이블에는 어떤 테이블이 존재하는가 SHOW TABLE STATUS : USE를 통해서 사용하는 DB의 테이블의 정보들 (버전, ROW수, ...) DESCRIBE [테이블 이름]; DESC [테이블 이름]; DESC [테이블 이름] : 해당 테이블의 COLUMN의 정보 (필드, 타입, NULL?, ....) - DES..
2022.03.05 -
[DB] 아스키코드 저장용 2022.01.21
-
[DB] 정규화
정규화 (Normalization) 주어진 릴레이션 스키마가 잘못되어 이상현상이 발생하는 릴레이션 스키마를 분해하여, 이상현상이 발생하지 않는 바람직한 릴레이션 스키마로 만들어 가는 과정 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정 함수적 종속성을 판단하여 정규화를 수행 정규화의 목적 - 불필요한 데이터를 제거, 데이터의 중복 최소화 - DB 구조 확장 시, 재디자인을 최소화 - 다양한 관점에서의 query를 지원하기 위해 - 무결성 제약조건의 시행을 간단하게 하기 위해 - 각종 이상 현상을 방지하기 위해, 테이블의 구성을 논리적이고 직관적으로 한다 정규화의 필요성 - 저장공간 최소화 - 데이터 중복에 따른 데이터 불일치성 최소화 - 데이터의 삽입..
2021.10.18 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DCL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 문 데이터 제어어(DCL) 1. GRANT : 권한 생성 데이터베이스 관리자가 사용자에게 권한 부여 (CONNECT 권한 및 RESOURCE 권한) CONNEC..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(삽입 / 수정 / 삭제)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DDL : 생성 CREATE TABLE 고객( 고객번호 NUMBER PRIMARY KEY, 고객이름 VARCHAR2(10) NOT NULL, 나이 NUMBER NOT NULL,..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(검색)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DML : 검색 (SELECT) - 기본 문법 SELECT [DISTINCT] 속성이름 FROM 테이블이름 [WHERE 검색조건] [GROUP BY 속성이름] [HAVING 검..
2021.10.15 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DDL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 데이터 정의어(DDL) 1. CREATE TABLE 문 : 테이블 생성 - 기본 문법 CREATE TABLE 테이블이름 ( 속성이름 데이터타입 제약조건, 속성이름 데이터타입 제..
2021.10.14 -
[DB] ER 모델을 관계 데이터 모델로 변환
데이터베이스 시스템(DBS) 개발 단계 ER 스키마를 관계 모델 릴레이션으로 변환 [규칙 1] 개체 타입 : 강한 개체 타입 -> 사원(사원번호, 사원 이름) [규칙 2-1] 속성 : 복합 속성(Composite Attribute) -> 고객(고객 아이디, 년, 월, 일) [규칙 2-2] 속성 : 다중값 속성(Multi-Valued Attribute) - 원래 개체의 릴레이션 속성에 다중값 속성을 포함시키지 않는다 - 다중값 속성은 따로 릴레이션을 만든다 - 다중값 속성 릴레이션의 기본키 = 원래 개체의 기본키(FK) + 다중값 속성 -> 고객(고객 아이디, 고객명) -> 고객 연락처(고객 아이디(FK), 연락처) [규칙 3-1-1] 관계 타입 : 2항 관계 / 1:1 관계 ※ 관계 타입 R에 대하여 R..
2021.10.13 -
[DB] 관계 데이터 연산
관계 데이터 모델에서의 DB 언어 : 관계 데이터 모델 기반 DBMS에서 원하는 정보를 얻기 위해 사용하는 언어 1. 관계 해석(Relational Calculus) 원하는 결과를 얻기 위해, 찾기를 원하는 데이터가 무엇인지만 명시하는 비절차적 언어 2. 관계 대수(Relational Algebra) 원하는 데이터를 얻기 위해, 데이터를 어떻게 찾는지에 대한 처리과정을 명시하는 절차적 언어 구분 관계 해석 관계 대수 특징 비절차적 언어(계산 수식의 유연적 사용) 프레디킷 해석(Predicate Calculus) 기반 절차적 언어(순서 명시) 목적 무엇을 얻을 것인가?(What) 어떻게 유도하는가?(How) 종류 튜플 관계 해석, 도메일 관계 해석 순수관계 연산자, 일반집합 연산자 ※ 관계 대수나 관계 해..
2021.10.12 -
[DB] 관계 데이터 모델 (Relational Data Model)
관계 데이터 모델 (Relational Data Model) - 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 - 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장 기본 용어 - 릴레이션(Relation) : 행과 열로 구성된 테이블 - 행(Row) : 투플(Tuple) - 열(Column) : 애트리뷰트(Attribute) or 속성 - 테이블 : 릴레이션(Relation) - 도메인(Domain) 하나의 속성이 가질 수 있는 모든 값의 집합 속성의 특성을 고려한 데이터 타입(INT, CHAR, VARCHAR...) - 널(Null) 속성 값을 아직 모르거나 해당되는 값이 없음을 표현 숫자 0도 아니고, 공백도 아닌 값 - 차수(Degree) ≥ 1 한 릴레이션에 들어있는 속성(열)의 개수..
2021.10.12 -
[DB] 개체-관계(ER : Entity-Relationship) 모델 (2)
관계 제약조건 (참여 특성) 1. 필수적 참여 (Total Participation) 모든 개체 인스턴스가 관계에 반드시 참여 ER 다이어그램 표기법 : 이중선 2. 선택적 참여 (Partial Participation) 개체 인스턴스 중 일부만 관계에 참여해도 됨 / 참여를 안 해도 됨 ER 다이어그램 표기법 : 실선 ※ Example 1) - 1개의 학과는 여러명의 학생이 소속된다 1개의 학과에 학생이 없을 수도 있다 -> 신설학과 / 입학 전 (학과는 선택적 참여) - 1명의 학생은 반드시 1개의 학과에 소속된다 (학생은 필수적 참여) ※ Example 2) - 1명의 고객은 여러권의 책을 구매할 수 있다 고객은 반드시 책을 구매해야 한다 (고객은 필수적 참여) - 1권의 책은 여러 명의 고객이 구..
2021.10.12