개발 이야기/DB(데이터베이스)
-
[DBMS] Hash Index개발 이야기/DB(데이터베이스) 2024. 12. 19. 19:15
Hash index란 앞서 말한 Index를 구현하기 위해 Hash 자료구조를 사용하는 방법을 의미한다. 앞서도 느꼈지만 자료구조...를 잘 모르면 DBMS 내용들을 이해하는데 뒷부분으로 갈수록 꽤나 힘이 든다. 그럼으로 Hash 자료구조에 관해 우선 간단히 정리하고 Hash Index에 관해 살펴보자. HashHash는 Hash함수를 이용해서 얻는 해시값을 이용하는 자료구조를 말한다. 데이터의 Key 값을 해시함수를 통해 간단한 값으로 변환하고 이 변환된 Hash를 배열의 인덱스로 활용하는 방법이다. Hash 함수 Hash 함수는 입력된 키를 특정 규칙에 따라 고정된 크기의 해시값으로 변환하는 함수로, 그 특징은 역 변환이 매우 어렵다는 것이다(이는 대다수의 특징이긴 하나 반환을 간단한 규칙으로 만들..
-
[DBMS] Index 2(정렬과 저장 Clustering 등)개발 이야기/DB(데이터베이스) 2024. 12. 19. 17:26
본 내용은 한양대학교 차제혁 교수님의 DBMS 강의자료와 https://dongwooklee96.github.io/post/2021/12/25/%EC%9D%B8%EB%8D%B1%EC%8A%A4-index-%EC%A0%95%EB%A6%AC-2.html 님의 자료를 바탕으로 작성하였습니다. 원자료들은 CS186Berkeley 자료입니다. General Index File Properties Basic Selection: 동등 조회 (=)범위 조회 (, =, BETWEEEN)B+TREE 인덱스는 위의 두개의 연산을 모두 지원하지만, 해시 인덱스는 오직 동등 연산만 지원 More Exotic Selections: 다양한 데이터 종류를 처리하기 위한 많은 종류의 인덱스가 종류한다. (R-TREE, KD-TREE,..
-
[DBMS] Index & B+ Tree개발 이야기/DB(데이터베이스) 2024. 11. 25. 16:08
본 내용은 한양대학교 차제혁 교수님의 DBMS 강의자료를 바탕으로 작성되었습니다. 추가로 B+ Tree 자료구조에 관한 내용은 https://velog.io/@emplam27/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-B-Plus-Tree 을 참고했습니다. Two ways to access앞서 보았듯 데이터에 접근하기 위한 방법은 크게 2가지가 있었는데 1. 페이지의 시작부분부터 모두 스캔하는 방법2. 레코드 ID(페이지 아이디, 슬롯 아이디) 를 이용하여 접근하는 방법이 존재했다. 하지만 값을 기반으로 기준으로 record를 찾을 수 있다면 좋지..
-
[DBMS] Heap File & Sorted File개발 이야기/DB(데이터베이스) 2024. 11. 24. 18:46
Heap file은 앞서 살펴 본것 처럼 레코드 간 순서가 없이 파일에 빈 공간이 있으면 레코드를 저장하는 방법이다. (Unnordered collection of record)이 장에서는 어떻게 File record를 Heap file이 관리하는지. Insert/delete/modify에서 확이하고 각각의 cost를 확인해보려고 하다. Type of FileFile의 구조 유형은 앞서 살펴본 것과 같이 다음과 같다. Heap Files (Unordered): full scan of record에 유리레코드가 순서 없이 페이지에 저장.레코드 삽입 시 페이지와 빈 공간 관리 필요.Heap file 자체는 조건 기반 검색 시 파일의 순차 스캔만 가능 -> Index가 필요한 이유 새로운 레코드는 파일 끝에..
-
[DBMS] Data Representations: Files, Pages,Records개발 이야기/DB(데이터베이스) 2024. 11. 24. 16:58
본 내용은 한양대학교 차제혁 교수님의 DBMS 수업을 기반으로 작성하였습니다. 추가 참고 자료는 https://dongwooklee96.github.io/post/2021/12/16/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%B0%8F-%EB%A0%88%EC%BD%94%EB%93%9C-%EA%B5%AC%EC%A1%B0.htmlhttps://velog.io/@impala/DB-Data-Storage-Structure데이터베이스는 저장소에 저장된 File의 모음이고File은 Record들의 집합(Sequence)이고, Record는 각 Field로 구성되어 있다(Record를 tuple로 fiel..
-
[DBMS] Buffer Management개발 이야기/DB(데이터베이스) 2024. 11. 23. 20:54
본 내용은 한양대학교 차제혁 교수님의 DBMS 수업을 기반으로 작성하였습니다. 추가 참조는 아래와 같습니다. CS186Berkeleyhttps://coldyun.tistory.com/18https://dongwooklee96.github.io/post/2021/12/29/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B2%84%ED%8D%BC%EB%A7%A4%EB%8B%88%EC%A0%80buffer-manager%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80.html 앞서 말한 Disk space management의 윗단에 존재하는 Buffer management에 관해 알아보자. Buffer는 memory..
-
[DBMS] Disk and Disk Space Management개발 이야기/DB(데이터베이스) 2024. 11. 22. 22:36
본 내용은 한양대학교 차재혁 교수님의 DBMS 강의를 기반으로 작성되었습니다. Big Picture: Architecture of a DBMSSQL은 어떻게 작동하는가? 실제 DBMS의 구조를 보면 다음과 같다. 우선. SQL client단은 앞서 배운 것처럼, 사용자 또는 응용프로그램이 데이터베이스와 상호작용하기 위해 사용하는 인터페이스라고 생각하면된다. 즉, SQL쿼리를 통해 DBMS와 상호작용하는 공간이다. 이후 Qeury parsing & optimization에서는 SQL 구문이 유효환지 검증하고, 내부 데이터 베이스 명령어로 변환한다, optimization의 경우 쿼리가 어떻게 하면 최적으로 효율적으로 데이터에 접근할지 선택하게 도와준다. Relational operator의 경우 데이..
-
[DB] SQL2: SELECT와 Relational Algebra 중심으로(조회)개발 이야기/DB(데이터베이스) 2024. 10. 19. 17:02
SELECT S.snameFROM Sailors SJOIN Reserves R ON S.sid = R.sidWHERE R.bid = 102;일단 그 전에 용어를 간단히 짚고 넘어가면 아래와 같다. 데이터 베이스와 스키마는 Database(Schema): Set of named Relations, 즉 여러 table이 있는 공간이다. Relation(Table)은 문자 그대로 table 형태, 데이터가 저장될 형태를 말하며 이 때 내부적으로 Schema는 description (“metadata”)을 의미하고 Instance는 set of data satisfying the schema을 뜻한다. Attribute(Column, Field)는 각 속성을 의미하고 Tuple(Record, Row)은 행 형태..