본문 바로가기

DB/ETC

데이터베이스 정규화 DB 정규화 자료의 손실이나 불필요한 정보의 도입없이 데이터의 일관성, 데이터 중복을 최소화하고 최대의 데이터 안정성을 확보를 위한 안정적 자료 구조로 변환하기 위해서 하나의 테이블을 둘 이상으로 분리하는 작업 목적 ?자료 저장에 필요한 저장 공간을 최소화자료의 삽입, 갱신 및 삭제에 따른 이상 현상 제거(데이타 무결성 유지)자료 구조의 안정성 최대화 단점 -> 테이블이 많이 질수록 join이 더 많이 일어난다(다른 테이블 접근 경우) *정규화 키워드- 제 1 정규화 : 원자값- 제 2 정규화 : 완전함수 종속- 제 3 정규화 : 이행적 함수 종속 제거- BCNF정규화: 후보키- 제 4 정규화 : 다치종속을 제거- 제 5 정규화 : 조인종속을 제거 제 1정규화(1NF) ★ 반복되는 그룹속성이 존재할 경우.. 더보기
NoSQL 정의 특성 No SQL? Not Only SQL?NoSQL은 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로 수평적 확장성을 특징으로 한다. 관계형이 아니기 때문에 join이 없고 고정된 스키마를 갖지 않는다.대표적인 NoSQL 제품은 Google의 BigTable, Amazon의 Dynamo이 있고, 이외에 비롯해 다양한 오픈소스 제품이 소개되어 있다. (BigTable, Dynamo, Cassandra, CouchDB, MongoDB, Hbase, Riak, Voldemort 등)구글의 BigTable paper에 보면 구글의 BigTable이 대체 무엇인지에 대해 간단하고 명료하게 기술하고 있다. A Bigtable is a sparse, distributed, persistent m.. 더보기
Intent Lock 의도락킹(Intent Lock)의 목적서로 달리 로크할 수 있는 단위의 로크에 대한 상이한 단계를 지정하고 최대의 병행성을 얻게 함즉!, Lock의 단위를 세분화해서 데이터의 접근성을 좀 더 유연하게 해 성능을 높힐 수 있다.예를들어 T1이 A란 데이터를 READ하고 있다면, T2도 동시에 READ작업이 가능하다. A. 주어진 트랜잭션이 주어진 튜플에 대해 S-Lock을 얻기 전에 먼저 그 튜플을 포함한 릴레이션에 IS-Lock나 그 이상의lock을 획득해야 함.B. 주어진 트랜잭션이 주어진 튜플에 대해 X-Lock을 얻기 전에 먼저 그 튜플을 포함한 릴레이션에 IX-Lock나 그 이상의lock을 획득해야 함. 더보기
트랜잭션 ACID 트랜잭션 ACIDAtomicity(원자성) 트랜잭션은 원자적이다. 즉, 모두 수행되거나 모두 수행되지 않아야 한다. (all-or-nothing)Consistency(일관성) 트랜잭션의 변환은 데이터베이스의 일관성을 유지해야 한다. 즉, 트랜잭션 수행후에 데이터는 일관성을 갖는다. (한쪽에서 -100이 되었다면, 다른쪽에서는 +100되어야만 한다.)Isolation(독립성) 트랜잭션은 서로 독립적이다. 즉, 일반적으로 여러 트랜잭션이 병행수행되더라도 각각의 트랜잭션은 서로에게 영향을 주지 않는다.Durability(지속성) 트랜잭션이 일단 완료되면 시스템 붕괴가 일어나도 갱신은 남아있게 된다. 더보기