이상현상에는 삽입이상, 삭제이상, 갱신이상 3가지 이상현상이 존재한다. 이상현상이란 테이블내의 데이터 중복성에 의해서 발생되는 데이터 불일치 현상이다. 삽입 이상 현상 내가 원하는 값만 테이블에 삽입하고 싶은데, 테이블에 필요하지 않은 필드들 때문에 원치 않는 필드의 값도 삽입해야 하는 경우 발생 나는 1,2,3번 필드에 대한 값만 테이블에 넣고 싶은데 테이블이 4개의 필드로 구성되어 있기 때문에 마지막 필드 값을 무엇으로 해야 할지 결정하지 못하는 삽입 이상 현상이 발생 되었다. 삭제 이상 현상내가 원하는 값만 테이블에서 삭제하고 싶은데, 하나의 튜플이 삭제를 원하지 않는 속성값도 갖고 있기 때문에 같이 지워져서 발생하는 문제. 나는 지금 운영체제 성적 82라는 정보만 삭제하고 싶다. 근데 테이블이 더..
1. 도메인 무결성 제약 조건어떤 속성에 해당하는 속성값은 항상 그 속성의 도메인에 속하는 값이어야 한다는 제약 조건이다.ex) 나이 필드(int=도메인)에 30,50이라는 값은 가능하지만 50살,30살(string)은 불가능해야 한다. 2. 개체 무결성 제약 조건기본키에 해당하는 속성의 속성값은 유일해야 하고 널값을 가질수없다.(NOT NULL + UNIQUE) 3. 참조 무결성 제약 조건어떤 두 테이블이 있을때 이 테이블들은 외래키와 기본키로 서로 연결되어 있다. 이때, 외래키가 실제 존재하는 기본키와 연결되어 있어야 한다는 제약 조건이 참조 무결성 제약 조건이다. 실제 데이터베이스에서는 참조 무결성을 지원하기 위해서 다음과 같은 3가지 옵션을 제공한다.1.CASCADE - 참조되는 릴레이션에 튜플이..
해시 인덱스- 범위질의에는 사용하면 안된다.(나이 이렇게 하면 나중에 그 키값에 해당하는 레코드를 찾을때 바로 찾을 수 있다. 이렇게 되면 이름="홍길동"과 같은 동등질의에서는 해쉬함수 적용 한번에 바로 데이터레코드를 찾을 수 있으므로 굉장히 빠르다. B+ Tree 인덱스- 범위질의에 강하다.- 동등질의에도 나쁘지 않다. leaf 노드를 데이터 엔트리라고 부르며, 그 외의 노드들은 인덱스 엔트리라고 불린다. 데이터 엔트리는 쌍으로 이루어져 있으며 rid는 record id의 약자이며, 실제 데이..
2018/4/18 디스크 구조의 성능 특성 디스크 I/O 시간을 줄이기 위해서 레코드를 전략적으로 배치 해야 하는데, 두 레코드를 같은 블록, 같은 트랙, 같은 실린더, 인접한 실린더 순서대로 배치를 해야 I/O시간을 줄일 수 있다.디스크 암에 달린 헤드는 하나의 실린더에 여러개가 붙어 있지만 병렬적으로 데이터를 읽어오지 못한다. 한번에 하나의 디스크 헤드로 읽어 오는것이 병렬적으로 여러개의 헤드를 통해 데이터를 읽는것보다 안정적이고 더 빠르기 때문이다. 그렇기 때문에, 같은 블록, 같은 트랙, 같은 실린더 순서대로 인접한 레코드를 배치 시켜야 하는것이다. 트랙이 꽉찬 경우 동일 실린더의 다른 트랙에 인접 레코드들을 배치 시켜야 한다. 맨위 실린더의 트랙, 그 아래 실린더의 트랙, 그 밑밑 실린더의 트랙..
제1정규화 (모든 속성이 원자값)↓ 부 제2정규화↓ 이제3정규화↓ 후BCNF정규화↓제4정규화↓제5정규화 제1정규화 -> 제2 정규화 : 부분적 함수 종속성 제거기본키가 복합키일 경우 부분적 함수 종속성이 존재 할 수 있음. 그것을 제거 해줘야 제2 정규화가 됨. 제2정규화 -> 제3정규화 : 이행적 함수 종속성 제거테이블에 A,B,C칼럼이 있을때 A->B를 결정하고 B->C를 결정하고 A->C를 결정하는 이런 것을 제거 해줘야 됨. 제3정규화 -> BCNF정규화 : 모든 결정자가 후보키여야 한다.후보키가 아닌 것들이 다른 속성들을 결정하게 되면 데이터 중복성이 발생할 수 밖에 없다. cf) 함수적 종속이란 속성 A,B가 있을때 A가 B를 결정한다는것이다. 다시 말해서 A가 정해지면 B는 A에 따라서 무조..
내부조인에는 동등조인과 자연조인이 있다. 동등 조인 - A테이블과 B테이블을 합치는데, 조인속성값이 같은 A의 튜플과 B의 튜플을 하나의 튜플로 합친다. cf)조인속성값 - 조인을 하기 위해 사용되는 속성의 값. 자연 조인 - 동등 조인과 비슷한데, 차이점은 하나의 튜플로 합치고 난뒤에 중복된 조인 속성을 2개다 표시하는게 아니라 1개만 표시한다는 점. 외부조인 - 왼쪽 외부 조인, 오른쪽 외부 조인, 전체 외부 조인이 있다. 왼쪽 외부 조인 - A테이블과 B테이블이 있을때, A테이블과 B테이블을 동등 조인한 결과에 A테이블의 동등 조인 되지 않은 튜플 까지 합쳐서 만든것이다. 오른쪽 외부 조인 - B테이블을 A테이블과 동등 조인 한 결과와 B테이블중에서 A테이블과 동등 조인 되지 않은 튜플들을 합쳐서 ..
ER다이어 그램을 설계하고 스키마를 정제하고 뷰를 정의한 뒤에, 디비 튜닝 까지 완료 해주어야 한다. SQL질의를 던졌는데 버벅거리면서 제대로된 성능이 나오지 않을때 자동차를 튜닝하는것처럼 디비를 튜닝 해주어야 한다. DB tuning 1. index 적절하게 사용 -> 질의가 들어 왔을때 디스크에 존재하는 데이터를 가장 빠르게 찾아주는것 (B+TREE,Hash)2.SQL Rewriting -> 중첩쿼리(Nested QUERY) 제거 -> 중첩 쿼리 대신 조인 사용, Grouping 최소화3.정규화 / 역정규화 -> 정규화를 많이 할수록 데이터 중복성은 제거되지만 퍼포먼스는 떨어짐. 우리는 디비 튜닝할때 정규화/ 역정규화에 대해서 자세히 살펴볼것이다. 회사에 중요하고 자주사용하는 질의가 무엇인지 분석하는..
주어진 함수 종속성 집합 F로부터 후보키를 찾아내는 방법을 알아보자. R(A,B,C,D,E,F)가 있다. F= {A->C , C->D, D->B , E->F}일때 이 테이블의 후보키는 무엇일까? 후보키라는 것은 최소성과 유일성을 만족하는 속성이다. 다시말해서 하나의 속성이 다른 모든 속성을 결정하면 그것이 후보키이다.물론 암스트롱 공리를 이용해서 F로부터 모든 F+를 구해서 후보키를 알아낼수도 있겠지만 경우의수가 매우 많고, 실수할 확률도 높아지게 된다. 그렇기 때문에 Attribute Closure(속성 폐포)를 이용해서 테이블의 후보키를 구해야 한다. 위의 F에서 오른쪽에 있는 속성을 제외한 나머지 속성들이 후보키가 될 자격이 있는 키들이다. 왜냐하면 후보키는 결정되는게 아니라 결정하는 결정자이기 때..
- Total
- Today
- Yesterday
- Babel
- async
- javascript
- rendering scope
- state
- type alias
- Next.js
- mobx
- promise
- design system
- Action
- react
- reducer
- computed
- reactdom
- return type
- useRef
- server side rendering
- Polyfill
- react hooks
- webpack
- hydrate
- typescript
- await
- es6
- props
- useEffect
- atomic design
- storybook
- reflow
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |