관계형 데이터베이스 실전 입문

1

누구나 알고 있는 그곳에 ‘보석’이 가득하다는 소문을 들었지만 그곳으로 향하지 않는 이유는 보석의 가치가 없기 때문이 아니라 누구도 그 보석을 가질 수 없다는 것을 알기 때문이다. 데이터베이스의 ‘보석’같은 내용이 중요하다는 것은 누구나 알고 있지만 그것을 등한시 하는 이유는 누구도 ‘보석’같은 내용을 실무에서 ‘설마’ 사용할까 싶은 의구심이 있기 때문이다. 정확히는 데이터베이스의 ‘이론’을 적용하기 힘든 노동 환경과 개인의 귀찮음이 결합되었기 때문이다.

2

이 책은 많은 대학에서 교재로 사용하고 있는 ‘돗단배’ 책에 비해서 ‘논리’와 ‘원리’를 실무 수준에서 적절하게 설명하고 있는 책이다. 만약 회사에서 데이터베이스와 관련된 업무를 담당하고 있다면 꼭 한 번 읽어보길 권하다. 그리고 ORM이나 여타의 데이터베이스 기술을 활용하는 분들에게도 추천한다.


  1. […] 그래서 SQL은 알아도 관계형 모델은 모른다는 상황이 생긴다.

  2. […] 관계형 모델이 나타내는 데이터 모델은 설게의 의미가 아니고 “데이터를 어떻게 표현할까”라는 개념의 의미다.

  3. […] 더구나 집합의 요소는 더는 분해될 수 없다는 점도 중요하다. 요소는 요소 하나로서 의미가 있는 값이다.

  4. 만약 릴레이션에 NULL이 포함돼 있으면 관계형 모델은 성립하지 않는다. NULL은 값을 모르는 상태를 나타내는 표식이다. 따라서 NULL이 포함돼 있으면 릴레이션 연산 결과가 항상 같아지지 않는다.

  5. 이처럼 연산의 입력과 출력이 같은 데이터 구조를 가진 성질을 클로저(폐쇄)라고 한다. 입력과 출력이 같은 데이터 구조라는 성질은 매우 중요하다. 연산 결과를 새롭게 입력해 꼬리에 꼬리를 무는 것처럼 연산을 기술하여 복잡한 연산을 표현할 수 있기 때문이다.

  6. 한 가지 주의할 점은 SELECT 문에서 이런 항목들이 평가되는 순서와 실제로 RDB에 의해 어떤 순서로 실행되는지는 관계가 없다. 아마 대부분의 RDB에서는 옵티마이저가 최적화를 실시해 처리를 생략하거나 실행 순서를 바꾸게 된다.

  7. […] 논리학을 기반으로 하지 않는 정규화의 설명은 엉터리라고 해도 과언이 아니다.

  8. [..] 술어와 집합은 등가교환을 할 수 있다. […] 참인 명제는 바꾸어 말하면 ‘사실’이라고 할 수 있다. 즉 릴레이션은 사실의 집합이다. […] 관계형 모델은 술어에 대입해 참이 되는 것은 릴레이션에 포함되는 튜플뿐이며 참이 되는 명제는 모두 빠짐없이 릴레이션에 포함되는 것으로 가정하고 있다. 이 가정을 폐쇄 세계 가정(Closed World Assumption)이라고 한다.

  9. […] 데이터의 조작인 쿼리는 DB에 포함된 각 테이블에 적절히 설계돼 있지 않으면 깔끔하게 표현할 수 없다.

  10. […] 일반화된 종속성이라는 개념을 사용해 정규화를 실시하므로 BCNF와 5NF 이외의 정규화는 생각하지 않아도 된다.

  11. 응용프로그램의 설계가 결점투성이라면 DB 설계되 엉망이 돼 버린다는 것을 말한다.

  12. 그렇다면 GROUP BY에 의한 집계가 릴레이션이 되는 이유는 정확하게는 집계가 아니기 때문이다. GROUP BY와 같이 항목별로 집계를 얻는 조작은 집계가 아니고 요약(Summarization)이라고 한다.

  13. 인덱스를 사용해 검색할 때 와이들카드의 지정은 전방 일치로 와일드카드가 구체적인 문자열 뒤에 놓여야 한다. 전방 일치여야 하는 이유는 B+ 트리의 물리적인 구조 때문이다.

Written on January 18, 2017