[TIL] Day52- SQL(4)

공부중인 개발자·2021년 6월 22일
0

TIL

목록 보기
52/64
post-thumbnail

데이터베이스 정규화

데이터베이스 정규화는 데이터베이스의 설계와 연관
그 이유는 데이터베이스 설계가 결론적으로 데이터가 어떻게 저장될 지 구조를 정해주기 때문

Data Redundancy

데이터 중복 (data redundancy) 는 실제 데이터의 동일한 복사본이나 부분적인 복사본을 뜻함
이러한 중복성으로 데이터를 복구할 때에 더 수월할 수도 있겠지만 데이터베이스 내에서는 몇가지 문제점을 가짐

  • 일관된 자료 처리의 어려움
  • 저장 공간 낭비
  • 데이터 효율성 감소

Data Integrity

데이터 정규화는 이러한 데이터 무결성을 강화하기 위한 목적도 있음

데이터 무결성 (data integrity) 는 데이터의 수명 주기 동안 정확성과 일관성을 유지하는 것을 뜻함
입력된 데이터가 오염되지 않고 입력된 그대로 데이터를 사용할 수 있다는 뜻

Anomaly

데이터 이상 현상 (anomaly) 와 같은 경우에는 데이터에서 기대한 것과 다른 이상 현상을 가리킴

  • 갱신 이상 (update anomaly)
  • 삽입 이상 (insertion anomaly)
  • 삭제 이상 (deletion anomaly)

갱신 이상 (update anomaly) 는 동일한 데이터가 여러 행 (레코드) 에 걸쳐 있을 때에 어느 데이터를 갱신해야 하는지에 대한 논리적 일관성이 없어 발생(ID 가 겹칠 때)

삽입 이상 (insertion anomaly) 는 데이터 삽입을 못하는 경우(레코드에 컬럼이 없을 경우(NULL 조차 지정하지 않았을 때))

삭제 이상 (deletion anomaly) 와 같은 경우에는 데이터의 특정 부분을 지울 때에 의도치 않게 다른 부분들도 함께 지워지는 이상 현상

SQL 종류

  • Data Definition Language (DDL)

DDL 은 데이터를 정의할 때 사용되는 언어
예를 들어 테이블을 만들 때 사용하는 CREATE 이나 테이블을 제거할 때 사용되는 DROP 등
데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용

  • Data Manipulation Language (DML)

DML 은 데이터베이스에 데이터를 저장할 때 사용되는 언어
INSERT 처럼 새로운 레코드를 추가할 때 사용되는 문법들이 포함
데이터를 삭제하는 DELETE 라든가 변경하는 UPDATE 등이 여기에 포함

  • Data Control Language (DCL)

DCL 은 데이터베이스에 대한 접근 권한과 관련된 문법
어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정하거나 없애는 역할
권한을 주는 GRANT 나 권한을 가져가는 REVOKE 등이 포함

  • Data Query Language (DQL)

DQL 은 정해진 스키마 내에서 쿼리를 할 수 있는 언어
여기에 포함된 문법은 SELECT
따로 언어가 분류되지만 DQL 을 DML 의 일부분으로 말하곤 함

  • Transaction Control Language (TCL)

TCL 은 DML 을 거친 데이터 변경사항을 수정할 수 있다.
COMMIT 처럼 DML 이 작업한 내용을 데이터베이스에 커밋하거나 ROLLBACK 처럼 커밋했던 내용을 다시 롤백하는 문법


혼자서 공부하는 내용이라 이런것들이 존재한다 라는 의미로 공부를 했다.
SQL은 많이 사용을 해보면서 익히는것이 좋을 것 같다. SQL를 공부할 때 무조건 외우는 것보단 명령어가 어떻게 작동하는 지에 대한 이해가 필요할 것 같다.

profile
열심히 공부하자

0개의 댓글