DB11 - Index
·
🏫 한동대학교/Database
Data Structures in DB InternalsData structures are used all around DBMSs for many purposesDBMS(데이터베이스 관리 시스템) 전반에서 다양한 목적을 위해 자료구조가 사용된다.Internal meta-data내부 메타데이터Page tables 페이지 테이블Page directory 페이지 디렉토리Page headers, Tuple headers 페이지 헤더, 튜플 헤더Various page mappings; e.g., page_id to frame, page_id to some allocation on disk (hash tables)다양한 페이지 매칭 (예 : page_id를 메모리 프레임 또는 디스크 내의 특정 할당 영역에 매칭 (..
DB10 - Transcation
·
🏫 한동대학교/Database
Transactions 트랜잭션Concept and examples개념과 예시Levels of transactions트랜잭션의 수준 Transactions 트랜잭션1) A transaction 트랜잭션An indivisible “unit” of program execution that accesses and updates dat안a items데이터 항목에 접근하고 업데이트하는 프로그램 실행의 불가분한 "단위"Indivisible: Either execute entirely or not at all불가분성: 전부 실행하거나 전혀 실행되지 않음A collection of operations that form a single logical unit of work하나의 논리적 작업 단위를 형성하는 연산들의 모음..
DB09cdef - Advanced SQL
·
🏫 한동대학교/Database
[1] ViewsViewsIt is not always desirable for all users to see the entire logical model of data (모든 사용자가 데이터의 전체 논리 모델을 볼 수 있도록 하는 것이 항상 바람직한 것은 아니다)E.g., consider a user who needs to know an instructor name and department, but not the salary(예: 강사의 이름과 학과는 필요하지만 급여는 알 필요 없는 사용자)This user only needs to see the following relation (in SQL)(이 사용자는 다음과 같은 관계만 보면 된다) SELECT ID, name, dept_name FROM in..
[DB] DB09ab - Advanced SQL
·
🏫 한동대학교/Database
AgendaJoin (조인)Views (뷰)Window functions (윈도우 함수)Keys (키) Join OperationsJoin operations take two relations and return another relation조인 연산은 두 관계를 받아 또 다른 관계를 반환한다.A join is a Cartesian product that requires tuples in the two relations match조인은 두 관계의 튜플이 일치해야 하는 '데카르트 곱'이다.-> 두 테이블의 특정 컬럼 값이 같을 때만 서로 연결해서 새로운 결과를 만든다는 의미한다.It also specifies the attributes that are present in the result of the j..
[혼자공부하는SQL] Summary3
·
💻 개발/📀 MySQL
15강1. 인덱스의 개념SELECT를 사용해서 테이블을 조회할 때 결과를 빠르게 도출하도록 도와주는 기능이다.인덱스가 반드시 필요한 것은 아니지만, 실무에서는 데이터의 양이 엄청 많기 때문에 인덱스가 필요하다1) 인덱스의 장점과 단점(1) 장점SELECT문으로 검색하는 속도가 매우 빨라진다.그 결과 컴퓨터의 부담이 줄어들면서 결국 전체 시스템의 성능이 향상된다.(2) 단점인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간이 필요하다.대략 테이블 크기의 10% 정도의 공간이 추가로 필요하다.처음에 인덱스를 만드는 데 시간이 오래 걸릴 수 있다.찾아보기가 없는 책에 새로 찾아보기를 만드는 것과 마찬가지로 작업 시간이 필요하다.SELECT가 아닌 데이터의 변경 작업(INSERT, UPDATE, DELET..
[혼자공부하는SQL] Summary2
·
💻 개발/📀 MySQL
9강1. 데이터 형식1) 정수형(1) 종류데이터 형식바이트 수TINYINT1 (-128 ~ 127)SMALLINT2 (-32,768 ~ 32,767)INT4 (약 -21억 ~ + 21억)BIGINT8 (약 -900경 ~ + 900경)(2) UNSIGNED: 값의 범위가 0부터 시작되고, 음수까지의 범위가 양수로 더해진다.ex) TINYINT UNSIGNED → (0 ~ 256)2) 문자형(1) 종류데이터 형식바이트 수특징CHAR(개수)1~255고정형 문자형VARCHAR(개수)1~16383가변형 문자형- BINARY, VARBINARY도 있지만, 잘 사용하지 않는다.  (2) 고정형 문자형인 CHAR의 공간 낭비: CHAR는 글자의 개수가 고정된 경우, VARCHAR는 글자의 개수가 변동될 경우에 사용하는..
[혼자공부하는SQL] Summary1
·
💻 개발/📀 MySQL
1강1. DBMS(Database Management System)1) 의미: 데이터베이스를 관리하고 운영하는 소프트웨어2) 조건대용량 데이터여러 사용자와 동시에 공유3) 종류계층형(Hierarachical)망형(Network)관계형(Relational) → 가장 많이 사용되고 있다.객체지향형(Object-Oriented)객체관계형(Object-Relational)2. SQL (Structured Query Language)1) 의미: 구조화된 쿼리 언어로, 관계형 DBMS에서 사용되는 언어이다.2) 특징국제표준화기구에서 SQL에 대한 표준을 정해서 발표하고 있다. (표준 SQL)표준 SQL이 존재하지만, DBMS 제품별로 기능 차이가 존재한다.3강1. 데이터베이스 모델링1) 의미: 테이블의 구조를 미리..
[혼자공부하는SQL] 20강
·
💻 개발/📀 MySQL
07-3 자동으로 실행되는 트리커0. 시작하기 전에트리거는 자동으로 수행하여 사용자가 추가 작업을 잊어버리는 실수를 방지해준다.INSERT, UPDATE, DELETE가 실행되면, 방아쇠가 당겨져서 트리거를 자동으로 작동한다.ex) 직원 테이블에서 사원을 삭제하면, 해당 데이터를 자동으로 퇴사자 테이블에 들어가도록 설정할 수 잇다. 즉, 트리거를 사용하면 데이터에 오류가 발생하는 것을 막을 수 있고, 이런 것을 데이터 무결성이라고 부르기도 한다.1. 트리거의 기본1) 트리거의 개요트리거란? 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생하면 실행되는 코드이다.ex) 해당 데이터가 삭제 되기 전에 다른 곳으로 자동으로 저장해주는 기능이 있다면, 사용자는 더 이상 행 데이터를 삭제하기 전에..
[혼자공부하는SQL] 19강
·
💻 개발/📀 MySQL
07-2. 스토어드 함수와 커서1. 스토어드 함수스토어드 함수는 앞에서 배운 스토어드 프로시저와 비슷하다.하지만 사용 방법이나 용도가 조금 다르니, 별개로 알아둘 필요가 있다.1) 스토어드 함수의 개념과 형식MySQL에서 제공하는 함수 외에, 사용자가 원하는 함수를 직접 만들 수 있다.이를 스토어드 함수라고 한다.(1) 생성 형식DELIMITER $$CREATE FUNCTION 스토어드_함수_이름(매개변수) RETURNS 반환형식BEGIN - 이 부분에 프로그래밍 코딩 RETURN 반환값;END $$DELIMITER ;SELECT 스토어드_함수_이름();RETURNS 문으로 반환할 값의 데이터 형식을 지정한다.본문 안에서는 RETURN 문으로 하나의 값을 반환해야 한다.스토어드 함수의 매..
[혼자공부하는SQL] 18강
·
💻 개발/📀 MySQL
07-1. 스토어드 프로시저 사용 방법01. 시작하기 전에스토어드 프로시저(Stored Procedure) : SQL에 프로그래밍에 기능을 추가해서 일반 프로그래밍 언어와 비슷한 효과를 낼 수 있다.1. 스토어드 프로시저 기본1) 스토어드 프로시저의 개념과 형식스토어드 프로시저는 쿼리 문의 집합으로도 볼 수 있다.어떠한 동작을 일괄 처리하기 위한 용도로도 사용한다.자주 사용하는 일반적인 쿼리를 반복하는 것보다는, 스토어드 프로시저로 묶어 놓고, 필요할 때마다 간단히 호출만 하면 훨씬 편리하게 MySQL을 운영할 수 있다.(1) 스토어드 프로시저 생성DELIMITER $$CREATE PROCEDURE 스토어드_프로시저_이름 (IN 또는 OUT 매개변수)BEGIN-- 이 부분에 SQL 프로그래밍을 코드를 작..