목록데이터베이스 (9)
오늘부터 공부한다
ORM Object Relational Mapping(객체-관계 매핑)이라 불리는 이것은 객체와 관계형 데이터베이스의 데이터를 자동으로 연결(매핑)해주는 것을 말한다 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 데이터베이스 데이터 Object 필드 이것은 Persistant API라고도 할 수 있다 Ex) JPA, Hibernate 등 ORM의 장점 완벽한 객체지향적인 코드 ORM을 이용하면 SQL문이 아닌 클래스의 메서드를 통해 데이터베이스를 조작할 수 있어서 객체 모델만 이용해서 프로그래밍을 하는데 집중할 수 있게 한다. SQL..
BCNF는 제 3 정규화 + 모든 결정자(X)가 후보키인 정규형이다. 제 3 정규형에는 후보키가 여러 개 존재하고, 후보키들이 서로 중첩되는 경우에만 사용할 수 있다. 기본키는 (학번, 과목명)이다. 따라서 이는 담당교수의 결정자가 된다. 결정자를 결정하는 다른 경우를 살펴본다. 1. 학번일 경우, 171749은 데이터베이스, 네트워크를 가졌으며, =담당 교수도 홍길동, 유관순으로 X에 따라 Y가 결정되지 않는다. 따라서 학번은 결정자가 아니다. 2. 과목명일 경우, 데이터베이스가 홍길동과 이순신을 가르킨다. 따라서 담당교수를 결정하지 않는다. 과멱명 또한 학번이 다르기에 과목명은 결정자가 아니다. 3. 담당교수의 경우, 홍길동 -> 데이터베이스, 이순신 -> 데이터베이스, 유관순 -> 네트워크로 담당교..
이상 현상 (Anomaly) 정규화를 하기 전에 봤으면 더 이해하기 쉬웠을까? 라는 생각을 했다. 좋은 관계형 데이터베이스를 설계하는 목적 중 하나가 정보의 이상 현상(Anomaly) 이 생기지 않도록 고려해 설계하는 것이다. 이상 현상은 갱신 이상(Modification Anomaly), 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly)으로 구성된다. 결론 ) 이상 현상이란? 테이블내의 데이터 중복성에 의해서 발생되는 데이터 불일치 현상이다. 갱신 이상 (Modification Anomaly) : 반복된 데이터 중에 일부를 갱신 할 시 데이터의 불일치가 발생한다. 삽입 이상 (Insertion Anomaly) : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를..
데이터베이스 정규화란? 데이터 베이스 정규화란 데이터의 중복을 줄이고, 무결성을 항상 시키는 등 여러 목적을 달성하기 위해 관계형 데이터베이스를 정규화된 형태로 재디자인하는 것을 말한다. 정규화의 목적 불필요한 데이터를 제거, 데이터의 중복을 최소화 데이터베이스 구조 확장 시 재디자인을 최소화 다양한 관점에서 query를 지원하기 위해서 무결성 제약조건의 시행을 간단하게 하기 위해서 각종 이상 현상(Anomaly)을 방지하기 위해서, 테이블의 구성을 논리적이고 직관적으로 한다. 정규화의 대상 온라인 거래 시스템 같은 OLTP(OnLine Transaction Processing) 데이터베이스는 CRUD(Create Read Update Delete)가 많이 일어나기 때문에 정규화 되는 것이 좋지만, 분석..
무결성 제약 조건이란? 데이터베이스 테이블에 신뢰할 수 없는 데이터를 입력 못하도록 하는 제약조건 데이터 무결성의 중요성 합리적 의사소통이 가능하다. 데이터 중복 감소한다. 데이터의 신뢰성 증가한다. 데이터 무결성의 기법 데이터 무결성 유형 개체 유일성 기본키는 Null 불가이며, 유일해야하는 속성 예) 학생 번호가 없는 레코드는 존재 불가 참조 일관성 테이블 간 관계로 연결된 데이터는 일관성 유지 필요 예) 주문고객의 고객번호는 존재하거나 Null값 속성 일치성 속성의 값은 그 속성이 정의된 도메인에 타입과 일치 예) 학생 번호는 정수이어야한다. 사용자 정의 만족 값들은 사용자가 정의한 제약조건을 만족 예) 주문 취소금액은 주문 금액보다 작음 키 유일성 한 개체에 같은 값을 가진 레코드는 불허 예) 동..
트랜잭션은 전에 내용을 정리한 적이 있었다. 하지만 내가 제대로 이해하지 못했고 부족한 내용이 많았고 설명도 이상했다. 1. 트랜잭션 1. DBMS에서 데이터를 다루는 논리적인 작업의 단위 2. DB에서 데이터를 다룰 때 장애가 일어난 경우 복구하는 작업의 단위 3. DB에서 여러 작업이 동시에 같은 데이터를 다룰 때 이 작업을 분리하는 단위 4. 트랜잭션은 전체가 수행되거나 전혀 수행되지 않아야한다. 우리가 데이터베이스에 삽입, 수정, 삭제등의 작업을 할 때, 여러 개의 작업들을 하나의 트랜잭션에 묶는다. 즉, 트랜잭션은 DBMS에서 데이터를 다루는 논리적인 작업의 단위가 된다. 예를들어 A계좌에서 B계좌로 돈을 이체하는 경우 A에서 돈을 빼고 B에서 돈을 더하는 2가지 Update문으로 나뉘게 된다...
데이터 모데링의 개념(Data Modeling) [데이터베이스 생명주기] 1. 요구사항 수집 및 분석 -사용자들의 요구사항을 듣고 분석하여 db구축 범위를 정한다 2. 설계 - 분석된 요구사항을 기초로 주요 개념과 업무 프로세스(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계), 데이터베이스 스키마를 도출(물리적 설계)를 한다. 즉 설계 단계에서 개념적 모델링을 하여 ER다이어그램을 도출하고 이용하여 관계스키마 모델을 도출하고 물리적 모델링하여 관계 스키마를 도출해낸다. 3. 구현 - 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 관련 객체를 만들고, 구현된 db를 기반으로 소프트웨어를 구축하여 서비스를 제공한다. 4. 운영 - 구현된 db를 기반으로 소프트웨어를 구축하..
트랜잭션에서 추가로 설명한다. 2단계 Commit 데이터베이스에 업데이트 하는 방법 중 하나 업데이트 준비 단계와 수행 단계로 나뉜다. 1단계 : 응용 프로그램이 업데이트 처리 마지막 단계에서 'commit'명령을 내림 2단계 : 'commit'명령을 받은 마스터 컴퓨터는 업데이트 대상의 모든 서버에 'commit' 준비 지시를 보냄 3단계 : 각 서버가 업데이트 준비가 됬으면 마스터 컴퓨터에게 '준비 완료'를 보냄 4단계 : 모든 서버에게 완료를 받으면 commit동작 수행 // 한 서버라도 이상이 있으면 commit 명령 취소, rollback(복원) UNDO와 REDO UNDO 해당 트랜잭션이 정상 종료 할 수 없을 때, 변경 중이거나 변경된 내용에 대한 신뢰성을 잃어버린 경우에 변경을 모두 취소 ..
트랜잭션 (Transaction)이란? 데이터 베이스의 상태를 변화시키기 위해 수행해야하는 것이다. 간단하게는 SELECT, INSERT, DELETE, UPDATE등을 이용하여 데이터베이스를 접근 하는 것을 의미한다. 이들은 모두 원자성, 일관성, 지속성, 독립성의 특징을 가진다. 원자성(Atomicity) : 원자성은 db에 모두 반영되던가 전혀 반영되지 않아야한다. 만약 트랜잭션 단위로 데이터가 처리되지 않는다면, 설계한 사람은 데이터 처리 시스템을 이해하기 힘들 뿐만 아니라, 오작동 했을시 원인을 찾기가 매우 힘들어질것이다. 일관성(Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성을 가져야한다. 트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜..