본문 바로가기

computer science/데이터베이스17

[데이터베이스] 병행 제어(Concurrency Control) 병행제어란 여러개의 트랜잭션이 실행될 때 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않고 다른 트랜잭션에 영향을 주지 않으면서 트랜잭션을 제어하는 것을 의미합니다. 병행제어의 목적은 데이터 베이스의 공유와 시스템 활용도의 최대화, 데이터 베이스의 일관성 유지, 사용자에 대한 응답시간을 최소화하는데 있습니다. 트랜잭션이 동시에 실행되면 ? Dirty Write 같은 데이터에 대해 동시에 두 개 이상의 트랜잭션이 값을 바꾸고자 할 때 발생되는 현상 Dirty Read 아직 종료(commit)되지 않은 트랜잭션의 쓰기 내용을 읽는 것으로 비정상적 상태의 데이터를 읽게 되는 현상 Non-repeatable Read 어떤 트랜잭션에서 동일한 데이터의 값을 매번 읽을 때 마다 틀려지는 현상 Phantom Read.. 2020. 9. 4.
[데이터베이스] 트랜잭션(Transaction) 이번시간에는 트랜잭션에 대해 공부해 보겠습니다. 트랜잭션이란 데이터베이스를 조작하는 하나의 논리적인 작업단위를 구성하는 연산들의 집합를 의미하며 이 작업들은 모두 실행되거나, 모두 실행되지 않아야 합니다. 또한 트랜잭션은 병행제어(동시제어)와 회복의 논리적 단위입니다. 여기서 데이터베이스를 조작한다는 의미는 쿼리문을 이용하여 데이터베이스의 데이터를 조회,삭제,수정,삽입하는 일을 의미합니다. 또한 이런 작업은 여러 쿼리문을 포함할 수 있으며 이 모든 것들이 모두 성공적으로 실행되거나, 오류가 생긴 경우 모두 실행되지 말아야 합니다. 트랜잭션의 예로 많이 참고하는 입/출금으로 설명해 보겠습니다. A가 B에게 10000원을 이체해서 보낸다고 하겠습니다. 이 경우 "A의 계좌에서 10000원 출금, B의 계좌에.. 2020. 9. 1.
[데이터베이스] 정규화(Normalization) 이번 시간에는 데이터베이스 정규화에 대해 공부해 보겠습니다. 정규화란 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 의미합니다. 또한 데이터베이스 이상현상을 없애고 크고, 제대로 조직되지 않은 테이블들과 관계들을 작고 잘 조족된 테이블과 관계들로 나눈것을 포함합니다. 쉽게 말해서 데이터 중복에 의한 이상현상을 해소하는 과정을 의미합니다. 정규화에는 1정규형(1NF), 2정규형(2NF), 3정규형(3NF), BCNF(Boyce-Codd Normal Form), 4정규형(4NF), 5정규화(5NF)가 주로 실무에서 사용되며 그 이외의 경우는 주로 연구용으로 사용됩니다. 1 정규형(1NF) : 모든 속성을 반드시 하나의 원자값만 가져야 한다 위의 경우 취미는 반복그룹(취미1,취.. 2020. 8. 31.
[데이터베이스] 이상(Anomaly) 이번시간에는 데이터베이스 이상에 대해 공부해 보겠습니다. 이상이란 릴레이션에서 일부 속성들의 종속이나 데이터의 중복으로 인해 데이터 조작시 불일일치가 발생하는 것을 말합니다. 즉, 테이블을 설계할 때 잘못 설계하여 데이터를 삭제,수정,삽입할 때 논리적으로 오류가 생기는 것을 말합니다. 대부분 이상현상이 발생하는 데이터의 중복성때문인데 이를 제거하는 과정이 정규화 입니다. 이상의 종류에는 삽입이상, 삭제이상, 갱신이상이 있습니다. 1. 삽입 이상 : 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상입니다. 강의를 아직 수강하지 않은 새로운 학생을 삽입할 경우 강의코드 속성에는 null값이 들어가야 하는 문제가 생깁니다. 2. 갱신 이상 : 중복된 데이터 중 일부만 수정.. 2020. 8. 31.