Computer Science/Database :: 데이터베이스 19

데이터베이스 강의 마무리 정리

데이터베이스 강의 마무리 하며 정리 ✅ DBMS 이전 데이터 관리 방식, 운영체제의 지원으로 여러 파일에 나누어 데이터를 영구 저장하고 운영하는 시스템 파일 처리 시스템 ✅ 파일 처리 방식의 데이터 관리로 발생할 수 있는 문제점 데이터 중복 데이터 무결성 훼손 동시 접근 이상 ✅ 데이터 중복으로 생길 수 있는 문제 일관성 보안성 경제성 ✅ 한 조직의 연관된 데이터 집합을 다수의 사용자가 공용으로 사용하기 위해 통합 저장한 데이터 데이터베이스 ✅ 한 조직의 연관된 데이터 집합을 다수의 사용자가 공용으로 사용하기 위해 통합 저장하는 소프트웨어 패키지 데이터베이스 관리 시스템 ✅ DBMS가 데이터의 일관성을 보장하면서 다수의 데이터 조작 요청을 동시에 수행하기 위한 개념 트랜잭션 ✅ 데이터는 값과 OO로 구성..

데이터베이스 12강 :: 트랜잭션, 동시성, 스케줄

데이터베이스 12강을 보며 배운내용 트랜잭션이 뭐지? 데이터베이스를 조작하기 위한 하나의 논리적 단위를 이루는 연산의 집합 데이터베이스를 사용하는 작업을 묶어놓은 것을 트랙잭션이라고 부른다 그럼 코드 작성할 때의 함수 같은거구나~ => 여러 사용자가 데이터에 동시 접근시, 데이터의 일관성 문제를 해결해준다 특징 항상 ACID 특징을 준수해야 한다 원자성(Atomicity) 트랜잭션에 포함된 모든 연산 전체가 수행되거나 or 하나도 안되거나 모 아니면 도 일관성(Consistency) 트랜잭션이 수행되기 전과 후에 데이터베이스가 일관된 상태 유지 고립성(Isolation) 하나의 트랜잭션은 다른 트랜잭션에 방해받지 않는다 지속성(Durability) DBMS에 문제가 생겨도 데이터베이스에 저장된 트랜잭션의..

데이터베이스 11강 :: 해싱, 정적 해싱, 동적 해싱, 비트맵 인덱스

데이터베이스 11강을 보며 배운내용 해싱이 뭐지? 탐색키의 산술적인 연산으로 버킷의 주소를 계산하는 것을 해싱이라고 한다 🤔 조금 더 쉽게 해시 함수가 탐색키 집합을 어떤 버킷에 저장될 지 알려준다 그러면 해시를 이용해서 버킷에서 데이터 찾을 수도 있겠지. 해싱을 통해서 버킷에 저장될 때, 균등하게 저장되면 좋지만, 보통 일정 버킷으로 몰린다고 한다 해시 함수 이런 해시 함수를 이용해서 버킷에 넣어줄 수 있다 h(k) = k % 6 버킷(bucket)? 데이터를 저장하는 곳의 단위 정적 해싱 버킷의 개수가 고정된 해싱 기법 충돌과 동거자? 서로 다른 두 레코드가 동일한 버킷으로 가면 충돌, 이렇게 충돌난 레코드를 동거자라고 한다 => 한 곳에 몰리면 오버플로우가 발생할 수 있다 오버플로우(overflow..

데이터베이스 10강 :: 인덱스, 순서인덱스

데이터베이스 10강을 보며 배운내용 디스크와 메모리의 입출력(i/o)를 줄이기 위해 인덱스가 나왔다 인덱스 DBMS에서 요청된 레코드에 빠르게 접근할 수 있도록, 지원하는 데이터와 관련된 부가적인 구조 인덱스만 메모리에 올리니까 속도가 무지 빨라진다 탐색키 검색할 때 사용할 수 있는 키 인덱스 평가기준 상황에 따라 밑의 기준에 따라 어떤 인덱스를 쓸지 정한다 접근 시간: 찾는 데 걸리는 시간 유지 비용: 삽입/수정/삭제 갱신 비용 공간 비용: 인덱스 구조에 의해 사용되는 부가적인 공간 비용 인덱스 종류 순서 인덱스, 해시 인덱스 순서 인덱스 모든 탐색키가 순차적으로 정렬되어 있다 사전을 생각하면 편하다 밀집 인덱스 모든 레코드에 [ 탐색키 값 | 포인터 ] 쌍 가지고 있다 해당 레코드로 바로 이동 가능 ..

데이터베이스 9강 :: 물리적 저장 장치, 파일 구조, 저장 장치 접근

데이터베이스 9강을 보며 배운내용 물리적 저장 장치 휘발성 속도 빠르지만 끄면 없어진다 캐시, 메인 메모리 비휘발성 속도는 느리지만 데이터 저장 플래쉬 메모리, 자기 디스크, 광학 디스크 드라이브, 테이프 장치 데이터베이스 구성 데이터베이스는 파일로 쪼개지고, 파일은 블록으로 쪼개진다 데이터베이스 => 파일 => 블록 파일 데이터를 영구적으로 저장하기 위한 기초적인 논리적 구조 블록 파일을 고정적인 길이로 분할해서 생기는 균등한 크기의 데이터 묶음 레코드 블록을 구성하는 요소 더 이상 분리될 수 없는 최소의 데이터 단위 고정 길이 레코드에 저장시 가용 리스트 관리 자주 사용한다 공백 레코드 포인트가 빈 공간을 가르키게 한다 연결 리스트 이용해서 빈 공간에 넣어주고, 다음 빈 공간을 가르킨다 파일 구조 종..

데이터베이스 8강 :: 1~7강 중간점검

데이터베이스 8강을 보며 배운내용 1 ~ 7강 복습의 시간 파일 처리 시스템 DBMS 이전 데이터 관리 방식 운영체제 지원으로 여러 파일에 나누어 데이터를 영구 저장하고 운영하는 시스템 파일 처리 시스템의 문제점 데이터의 확장 데이터의 무결성 훼손 동시 접근 이상 DBMS 자기 기술성 DBMS가 데이터베이스 자체 뿐만 아니라 데이터에 대한 정의나 설명까지 포함하고 있는 특성 데이터 조작 언어 데이터베이스 언어의 한 영역 구조화된 데이터에 사용자 접근 및 사용을 지원하는 언어 3단계 구조 DMBS를 외부, 개념, 내부 스키마로 분리하고 각 단계 간 사상을 통해 구조화 하는 방식 3계층 클라이언트 - 서버 구조 클라이언트와 서버 사이에 데이터 접급하는데 사용되는 비즈니스 규칙을 저장한 중간 계층을 삽입해서 ..

데이터베이스 7강 :: 함수적 종속성, 정규화

데이터베이스 7강을 보며 배운내용 잘못된 데이터베이스 모델링 데이터 중복 일관성 유지 어려운 릴레이션 릴레이션은 표다 좋은 릴레이션 1. 프로그래머 관점 => 어떻게 데이터 저장해야 하나 2. 릴레이션의 스키마가 효율적으로 실세계를 반영하고 있는가? 고려사항 한 릴레이션 내의 컬럼 간의 관계 분석 원하지 않는 데이터 종속과 중복 제거 새로운 컬럼들이 추가될 때 최대한 독립성 유지 함수적 종속성 정의 릴레이션 인스턴스의 속성(컬럼)들 간의 연관관계 표현한 것 릴레이션 효율성을 향상시켜 좋은 릴레이션으로 변환한다는 개념 항수적 종속성 추론 규칙 1. 암스트롱 공리(Armstrong's axiom) 규칙은 외워야 한다 2. 카노니컬 커버 함수적 종속성 추론 규칙으로 확장된 클로저에는 당연한 종속성과 중복된 종..

데이터베이스 6강 :: 그룹질의, 중첩질의, 조인, 뷰

데이터베이스 6강을 보며 배운내용 4강, 5강에 이은 SQL 마지막 강의 좀 더 디테일한 데이터 검색을 배운다 궁금했던 JOIN 연산자도 나올 듯 싶다 정리(TL;DR) SQL은 생각보다 직관적인 언어로 심지어 재밌었다 백엔드에 조금 더 호감이 생긴 시점 집계함수 SQL 집계함수를 통해 연산을 수행할 수 있다 마치 JavaScript의 Math 함수를 사용하는 느낌 그룹질의 같은 값을 가진 녀석들을 무리짓게 할 수 있는 녀석 집계함수의 COUNT와 함께 자주 사용될 것 같다 중첩질의 SELECT문을 실행하면 테이블을 출력하는데, 이 출력된 테이블을 고대로 FROM이나 WHERE에 사용할 수 있다 복잡한 구성처럼 보이겠지만 그만큼 편리하겠지 조인 내부조인: 조건을 만족하는 레코드만 보여준다 외부조인: 조건..

데이터베이스 5강 :: 데이터 조작 언어 INSERT, UPDATE, DELETE, SELECT

데이터베이스 5강을 보며 배운내용 들어가기전 4강에서 데이터베이스를 정의하는 데이터 정의 언어를 알아봤다 이번 강의에서는 SQL을 이용해서 데이터 CRUD를 알아볼 듯 싶다 정리(TL;DR) DB조작한다고 SQL 어렵게만 생각했는데 직접 보니까 꽤 직관적인 녀석이다 아직 이론만 배워서 그럴지 몰라도 현재까지 GOOD 레코드 삽입 INSERT INTO 테이블이름(컬럼1, 컬럼2) VALUES 값1, 값2 레코드 수정 UPDATE 테이블이름 SET 컬럼 = 값 [선택]WHERE 컬럼제목 = 값 레코드 삭제 DELETE FROM 테이블이름 [선택]WHERE 컬럼제목 = 값 레코드 전체 검색 SELECT * FROM 테이블이름 레코드 부분 컬럼 검색 SELECT 찾을컬럼1, 찾을컬럼2 FROM 테이블이름 [선택..

데이터베이스 4강 :: SQL, 데이터 정의 언어

데이터베이스 4강을 보며 배운내용 목표인 SQL 돌입!! 기본만 제대로 알고가자 SQL 3강에 걸쳐서 배운다 정리(TL;DR) 👇 SQL 데이터 정의 언어 👇 생성 CREATE TABLE 테이블이름( 컬럼이름 데이터타임 특징, 컬럼이름 데이터타임 특징 ) 수정 ALTER TABLE 테이블이름 ADD COLUMN 컬럼데이터타임 제약조건 DROP COLUMN 컬럼이름 CHANGE COLUMN 수정전컬럼 수정후컬럼 MODIFY COLUMN 컬럼데이터타입​ 삭제 DROP TABLE 테이블이름​ 데이터베이스 언어는 어디서 사용될까? 데이터베이스 관리 시스템(DBMS)과 이야기 하려고 SQL이 가장 표준화된 언어 이거만 알면 다른 것 이해하기 편하다고 한다 SQL(Sturctured Query Language) 구..

728x90