본문 바로가기

Computer Science/Database19

[JDBC] JDBC (Java Database Connectivity) 문제의 상황 만약, CRUD를 해야되는 상황일 때 요구사항이 같은데, 매번 써야되는 함수가 다르다면 데이터베이스를 바꿀 때마다 모든 코드를 갈아엎어야 한다. 이때, 필요한 것이 표준 인터페이스이다. 표준 인터페이스의 필요성 개발자는 표준 인터페이스에 정의된 클래스와 함수만 사용하고, 사용하는 DB에 따라 라이브러리만 바꿔끼우면, 코드의 수정 없이 같은 동작이 가능하도록 할 수 있다. JDBC (Java Database Connectivity) Java application이 client로서 어떻게 데이터베이스에 접근하는지 정의해놓은 표준 인터페이스이다. Java Standard Edition (Java SE)에서 지원하는 스펙이다. Database에 접속하고 데이터를 업데이트하거나 쿼리(질의)할 수 있는.. 2023. 1. 12.
[데이터베이스 핵심 요약] 10. 인덱스(index) 1. 인덱스 개념 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 공간에 데이터의 물리적 주소와 함께 저장 2. 인덱스 알고리즘 주로 B+트리 또는 B*트리 알고리즘으로 구현한다. 구체적인 것은 추후 자료구조 핵심 정리하면서 올려둘 예정. 3. 인덱스 사용 시 좋은 경우 데이터 규모가 큰 테이블 삽입, 수정, 삭제 작업이 자주 발생하지 않는 컬럼 WHERE나 ORDER BY, JOIN 등이 자주 사용되는 컬럼 데이터 중복도가 낮은 컬럼 (= 분포도가 좋음) 4. 인덱스 사용 시 안 좋은 경우 데이터 규모가 작은 테이블 삽입, 수정, 삭제 작업이 자주 발생하는 컬럼 데이터 중복도가 높은 컬럼 (= 분포도가 나쁨) 추가적인.. 2022. 11. 13.
[데이터베이스 핵심 요약] 9. 반정규화(Denormalization) 1. 반정규화(Denormalization) 개념 정규화된 엔티티 타입, 속성, 관계에 대해 시스템의 성능향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스 적정 수준의 정규화 이후에 질의성능 향상을 위해 일부 데이터에 대하여 중복을 허용하는 정규화의 역작업이다. 2. 반정규화 실행 이유 성능 저하: 데이터 조회 시 디스크 I/O량이 많아서 성능저하가 발생, 경로가 너무 멀어 조인으로 인한 성능 저하 접근 효율성: 과도한 정규화로 인해 데이터 분산화, 정상적인 정규화를 통한 고객의 품질 요구사항 충족이 어려운 경우 3. 반정규화 실행 절차 대상 조사 → 다른 적용방법 검토 → 반정규화 적용 4. 반정규화 종류 테이블 수직 분할: 원래 1개의 테이블로 있던 것을 요약-상세사항 등의 형태로.. 2022. 11. 13.
[데이터베이스 핵심 요약] 8. 정규화(Normalization)와 함수적 종속성 1. 정규화(Normalization) 개념 이상현상을 발생시키는 속성간의 종속성, 중복성을 제거하고 무결성을 보장하기 위해 릴레이션(Relation)을 분해하는 과정이다. 이상현상을 야기하는 Attribute간의 종속 관계를 제거하기 위해 릴레이션을 더 작은 릴레이션으로 무손실 분해하는 과정이다. 2. 이상현상(Anomaly) 개념 데이터 중복으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상을 말한다. 하나의 릴레이션에 두 개 이상의 속성들을 혼합하여, 즉 정규화 되지 않은 경우에 데이터 중복이 원인이 되어 발생한다. 3. 이상현상 종류 종류 설명 Update Anomaly (갱신 이상) • 릴레이션 R에서 특정 속성값 갱신 : 중복・저장되어 있는 속성값 중 하나만 갱신하고, 나머지는 갱신하지 .. 2022. 11. 13.
[데이터베이스 핵심 요약] 7. 데이터 무결성 (Data Integrity) 1. 개념 사용자의 목적이나 의도와 다른 데이터의 오류방지, 정확성, 유효성, 일관성, 신뢰성을 위해 무효 갱신으로부터 데이터를 보호하는 개념 데이터 가치: 업무에 있어서 사용자에게 의미 있는 정보를 제공하기 위함 데이터 신뢰성: 항상 정확하고 오류가 없는 데이터가 데이터베이스에 저장되는 신뢰성을 제공함 2. 종류 무결성의 종류 내용 명령어 개체(엔티티) 무결성 • 한 엔티티는 중복과 누락이 있을 수 없음 • 즉, 동일한 PK를 가질 수 없거나 PK 속성이 null값을 허용할 수 없음 • Primary key • Unique index 참조(도메인) 무결성 • 외래키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 Null이어야 함 • Foreign key 속성 무결성 • 속성 값은 기본.. 2022. 11. 12.