[Database] 정규화 (Normalization)
·
데이터베이스
정규화란? (Normalization) 관계형 데이터베이스의 설계에서 중복을 최소화하여 데이터를 구조화 하는 프로세스입니다. 정규화의 목표는 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것에 있습니다. 정규화의 목적 ① 데이터베이스의 변경 시 이상현상(갱신, 삽입, 삭제)을 제거합니다. 테이블 수정 시, 원치 않은 부작용이 발생하는 것을 제거합니다. ② 데이터베이스의 구조 확장 시 디자인을 다시하는 것을 최소화 합니다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향을 주어 응용 프로그램의 생명을 연장합니다. ③ 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할합니다. ④ 어떠한 릴레이션이라도 데이터베이스 내에서 표현이 가능하게 합니다. ⑤ 효과적인 검색 알고리즘을 생성할 수 ..
[TCL] 트랜잭션
·
데이터베이스/SQLD
* SQL 전문가 가이드를 보고 작성하였습니다. 트랜잭션 트랜잭션은 데이터베이스의 논리적 연산단위이며 분할할 수 없는 최소의 단위입니다. 그렇기 때문에 전부 적용하거나 전부 취소합니다. (ALL OR NOTHING) * 커밋(COMMIT) : 올바르게 반영된 데이터를 데이터베이스에 반영시키는 것을 말합니다. * 롤백(ROLLBACK) : 트랜잭션 시작 이전의 상태로 되돌리는 것을 말합니다. * 저장점(SAVEPOINT) : 롤백할 지점을 선택하여 저장점으로 지정하는 것을 말합니다. 트랜잭션의 대상이 되는 SQL문은 UPDATE, INSERT, DELETE 등 데이터를 수정하는 DML문 입니다. 예를 들어, 계좌이체를 생각합니다. 1. 100번 계좌의 잔액에서 10,000을 뺍니다. 2. 200번 계좌의 ..
[DML] INSERT, UPDATE, SELECT
·
데이터베이스/SQLD
* 모든 쿼리는 oracle을 기준으로 작성하였습니다. * SQL 전문가 가이드로 공부하고 작성하였습니다. INSERT 테이블에 데이터를 입력합니다. 구문 INSERT INTO 테이블명 (COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST); INSERT INTO 테이블명 VALUES (전체 COLUMN에 넣을 VALUE_LIST); 예제 쿼리 * USERS라는 테이블에 NAME, AGE, HEIGHT, WEIGHT라는 칼럼을 만들었습니다. INSERT INTO USERS (NAME, AGE) VALUES ('유찌', '23'); INSERT INTO USERS (NAME, AGE) VALUES ('짱구', '5'); INSERT INTO USERS VALUES ('유찌..
[DDL] ALTER TABLE
·
데이터베이스/SQLD
* 모든 쿼리는 oracle을 기준으로 작성하였습니다. * SQL 전문가 가이드 책을 보며 공부하고 작성하였습니다. ALTER TABLE 테이블에 도중에 칼럼을 추가/삭제하거나 제약조건을 추가/삭제하는 작업을 진행할 때 사용한다. ADD COLUMN 테이블에 새로운 칼럼을 추가합니다. 새롭게 추가된 칼럼은 테이블의 마지막 칼럼이 되며 칼럼의 위치는 지정할 수 없습니다. 구문 ALTER TABLE 테이블명 ADD추가할 칼럼명 데이터 유형; 예제 쿼리 PLAYER 테이블에 ADDRESS(데이터 유형은 가변 문자로 자릿수 80자리로 설정) 칼럼을 추가. ALTER TABLE PLAYER ADD (ADDRESS VARCHAR2(80)); DROP COLUMN 테이블에서 필요 없는 칼럼을 삭제 할 수 있습니다. ..