이번 시간에는 DB Transaction Isolation Level에 대해서 알아보겠습니다. DB Transaction Isolation Level이란 특정한 트랜잭션이 다른 트랜잭션에 변경한 데이터를 보게 할 지 결정하는 것입니다. 예를 들어, 같은 DB를 사용하는(DBA, Software Engineer, 시스템 사용자..) 사람이 특정 데이터를 조회하려고 하는데, DB Transaction Isolation Level의 설정때문에 데이터를 조회하는데 특정 데이터에 Lock이 걸려 한 없이 기다리고 있을 수도 있고, 커밋되지 않은 데이터를 읽게 설정해 잘못된 데이터를 읽을 수도 있습니다. 따라서! 실무에서는 DB Transaction Isolation Level을 올바르게 설정하고 이해하는 것이 무..
이번 포스팅에서는 전 시간에 진행했던 Logical Database Design이 잘 구조화되었는지에 대해 알아본다. 목차는 다음과 같다. 목차 1. Well Structured Relation 2. Functional Dependency 3. Normalization 1. Well Structured Relation Relation이란? 명명된 2차원의 데이터 표를 의미한다. 다음과 같은 Relation에서 직원번호가 100번인 데이터 2개의 행에 대해 업데이트를 한다고 했을 때 만약, 연봉이 첫번째만 업데이트가 되고 아래행은 업데이트가 안됐다고 가정해보자. 이러면 어떻게 될까? Modification Anomaly, 수정 이상 징후가 발생한다. Anomaly란 데이터베이스를 업데이트 할 때 발생할 수..
3장, The Enhanced ER Model에 이어 이번 포스팅에서는 Logical Database Design에 대해서 알아본다. Logical Database Design의 단계는 그림으로 알아보자면 다음과 같다. 앞선 포스팅에서 알아보았던 2장, 3장의 주제는 Conceptual Data Modeling의 단계이다. 목차는 다음과 같다. 목차 1. Logical Database Design 2. Relational Data Model 3. Transforming from ER model to Relational model Logical Database Design Conceptual data Modeling에서는 ER Model을 이용하여 사용자 요구사항들을 표시했다. 이 과정에서는 어떻게 정확한..
이번 포스팅에서는 The Enhanced E-R Model에 대해서 알아본다. Enhanced E-R Model이란 기존 ER모델의 확장 및 추가 구성을 의미한다. 이 Enhanced E-R Model에서 가장 중요한 기능은 super type과 sub type 구성이다. 이 super type과 sub type이 왜 중요한지 다음의 예시를 통해 알아본다. 만약, 한 회사의 3가지 종류의 직원이 있다고 가정해보자. 시간제 직원은 EID, Name, Address, Hourly_rate 컬럼만 사용, 봉급 직원은 EID, Name, Address, Salary, Stock_option 컬럼만 사용, 계약 직원은 EID, Name, Address, Cotract_ID, Billing_rate 컬럼만 사용한다..
저번 포스팅에 이어 이번엔, Modeling Data in the Organization에 대해 알아본다. 목차는 다음과 같다. 목차 1. Entity-Relationship Model 2. Entity Type, Relationship type, and attribute 3. Degree, Cardinality Constraint and Participation Constraint 4. Weak Entity Type Modeling Data in the Organization Entity-Relationship Model Conceptual Data Modeling에서는 Entity-Relationship Model을 만드는 과정을 포함한다. 즉, Entity-Relationship Model은 Con..
최근 들어 프로젝트에 JPA를 사용하면서 DB에서 데이터들을 편리하게 꺼내 쓸 수 있음을 느낄 수 있었다. 그런데, DB의 근본적인 개념들에 대해 부족함을 느껴 이를 정리해보고자 한다. 정리에 사용되는 자료는 다음과 같다. 명지대학교 융합소프트웨어학부 김일주 교수님의 DB설계 및 구현2 수업자료들과, 수업교재로 사용된 Modern Database Management, 12th Edition(J.A Hoffer)이다. 첫 포스팅은 데이터베이스 환경과 개발 프로세스이다. 목차는 다음과 같다. 목차 1. 현대 조직에서의 데이터 2. 데이터, 정보, 지식 3. 데이터베이스란 4. 왜 데이터베이스를 사용하는가 5. DB 기술의 진화 6. DB 개발 프로세스 데이터베이스 환경과 개발 프로세스 1. 현대 조직에서의 ..