본문 바로가기

Computer Science/DB6

스키마란? 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 메타데이터 :- 데이터에 대한 데이터로 어떤 목적을 가지고 만들어진 데이터- 상세히 설명하면, 데이터베이스를 구성하는 데이터 개체(Entity) 속성(Attribute) 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.- 비슷한 특징을 가진 ERD - ERD 다이어 그램 : 객체-관계 모델로 테이블간의 관계를 설명해주는 다이어그램이다. 테이블의 속성들을 상사헤 표시하기도 한다. * 스키마와 ERD의 차이점은 무엇일까? - 간단히 말하면 , ERD(Entity Rellationship Diagram)은 설계도이고, 스키마는 구현의 차이이다. 데이터베이.. 2024. 12. 18.
B tree, B+ tree 개념 * B tree - 데이터가 정렬되어 있는 트리로 2진트리와 비슷하지만, 자식 노드가 2개 이상 가능한 트리. 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있는 것이 장점. * 용어 - node : 사각형으로 표시된 한 개의 데이터 - root node : 가장 상단의 노드 - branch node : 중간 노드들 - leaf node : 가장 아래 노드 * 특징 1. 균일성 : 어떤 값에 대해서 O(logN) 값을 얻을 수 있음. 2. 균형트리 : 루트로 부터 리프까지의 거리가 일정한 트리 구조. 3. 항상 정렬된 상태. 대소 비교에 문제가 없음. * 삽입 1. 빈 트리일 경우 root node를 만들어 삽입함. 2. key가 들어갈 리프노드를 탐색한다. 3. 해당 리프 노드에 자리가 남아있다면 정.. 2024. 12. 18.
Transaction_and_ACID * 트랜잭션 (Transaction) - 대용량 데이터 동기화 등을 처리하다 보면 개발자가 트랜잭션을어떻게 처리 하느냐에 따라 데이터의 정합성 등에 영향을 주게 된다.그래서 백엔드 개발자로서 트랜잭션은 중요한 개념이다. * 트랜잭션 상태- 위에서 알게된 Commit과Rollback은 트랜잭션이 어떤 상태일 때 발생할 수 있을까- Active : 트랜잭션이 실행 중이며 동작 중인 상태- Partially Committed : 트랜잭션이 실행되고 데이터 변경을 DB에 적용 전 메모리 공간에만 변경해놓을상태.- Committed : 트랜잭션이 정상적으로 완료 상태. 즉 실제로 메모리에서 DB에 데이터를 쓴 상태. Rollback 불가능.- Failed : 오류로 트랜잭션 실패 상태.- Aborted : 트랜잭.. 2024. 12. 18.
Transaction_Isolation_level * Intro - 트랜잭션의 Isolation이 제대로 유지되려면 복수의 트랜잭션을 동시에 실행할 경우, 이상 현상이 일어나지 않도록 한다. 이것을 보장하기 위한 중요한 속성이 Serializability와 Recoverable 임. - 하지만 동시에 처리할 수 있는 트랜잭션의 수가 줄어서 DMBS 성능이 하락하는 단점이 존재. - 이를 해결하기 위해 DMBS의 concurrency control은 여러 종류의 Isolaton level을 제공함. - 정합성과 성능 사이에서 어느정도 타협을 할 수 있음. * 트랜잭션 격리 수준 (Isolation level)- 세 가지 이상 현상을 정의한 뒤 어떤 현상을 허용하는지에 따라서 Isolation level이 나뉜다.1) Read Uncommitted (커밋되.. 2024. 11. 28.
DB의 Index(인덱스) * 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조즉. index는 데이터의 주소값을 저장하는 별도의 특별한 자료구조이다. index를 활용해서 빠르게 원하는 데이터 검색 가능.1. DB 테이블에 인덱스(index)가 필요한 이유.  a. 만약 table에 index를 걸지 않으면 어떻게 될까?SELECT *FROM cutomerWHERE first_name = "Lee"- 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야함.- full scan : row를 하나하나씩 모두 확인하는 것을 의미- 시간 복잡도 : O(N) b. 만약 index가 걸려있다면? - 시간 복잡도 : O(logN) B-Tree 기반.index 자료구조 에서.. 2024. 11. 28.
DB Connections * Intro- DB를 사용하기 위해 DB와 애플리케이션 간 통신을 할 수 있는 수단.- DB Connection은 Database Driver와 Database 연결 정보를 담은 URL을 필요로 함.- Java의 DB Connection은 JDBC를 주로 이용하며, URL 타입을 사용한다. * DB Connection 구조 1. 2Tier : 클라이언트의 자바 프로그램(JSP)가 직접 데이터베이스 서버로 접근하여 데이터를 액세스 하는 구조. 2. 3Tier : 자바 프로그램과 데이터베이스 서버 중간에 미들웨어 층을 두어, 그 미들웨어 층에게 비지니스 로직 구현부터 트랜잭션 처리, 리소스 관리 등을 전부 맡기는 구조. * JDBC - JDBC( Java Database Connectivity ) 란 자바.. 2024. 11. 25.