본문 바로가기

T아카데미/데이터베이스

(24)
데이터베이스 이수증
21강. SQL Advanced 8 [ 목차 ] 1. 대형 데이터베이스의 필요성 2. VLDB (Very Large DBMS) 3. 스케일업 4. 스케일아웃 5. Not Only SQL 6. NOSQL의 분류 7. 스키마리스 1. 대형 데이터베이스의 필요성 1) 계속 늘어나는 데이터 -> 한 대의 DBMS 서버로는 처리능력의 한계 2) 성능 업그레이드 필요 3) HDD - > SSD -> 인 메모리 머신 2. VLDB (Very Large DBMS) 1) 샤딩 : DBMS 내용을 분할(DB/테이블)해 여러 곳에 저장하는 것으로, 쓰기 성능이 향상 2) 복제 : 동일한 DBMS를 여러 개 유지(마스터/슬레이브)하는 것으로, 읽기 성능 향상 3. 스케일업 1) 보통 말하는 업그레이드를 포함 2) CPU 클럭속도 증가, 코어 수 증가, 메모리 ..
20강. SQL Advanced 7 [ 목차 ] 1. 저장 프로시저 정의/호출/삭제 2. 트리거 정의/생성/삭제 1. 저장 프로시저 정의/호출/삭제 create procedure 프로시저명(인자 인자형, ...) begin sql 문장 end call 프로시저명; drop procedure 프로시저명; 1) SQL을 함수형태로 저장하고 사용하는 방법 2. 트리거 정의/생성/삭제 create trigger 트리거명 before(after) CRUD on 테이블명 for each row begin 변경 전(OLD.칼럼명) 또는 변경 후(NEW.칼럼명)을 이용한 처리 end drop procedure 프로시저명; 1) 특정한 조건이 되면 자동으로 호출되는 저장 프로시저
19강. SQL Advanced 6 [ 목차 ] 1. 트랜잭션 2. 트랜잭션 기본 설정 확인/설정 끄기 3. 트랜잭션의 ACID 특성 4. 락 5. 격리수준 6. 격리수준 확인/변경 1. 트랜잭션 1) 복수의 SQL문을 수행하는 도중에 장애가 발생했을 때 장애에 대응할 수 있도록 하는 기능 2) 전체 수행(커밋)과 전체 취소(롤백) 두 가지의 결과값만 가짐 3) 기본적으로 AutoCommit모드가 선택 4) 트랜잭션을 지원하기 위해서는 AutoCommit모드를 오프시켜야 함 5) InnoDB 스토리지엔진만 사용 가능 2. 트랜잭션 기본 설정 확인/설정 끄기 select @@autocommit; 1) 결과값이 1의 경우 설정, 0의 경우 비설정 상태 set autocommit=false; 3. 트랜잭션의 ACID 특성 1) 원자성 : 전체가..
18강. SQL Advanced 5 [ 목차 ] 1. LIKE 검색의 단점 2. 전문검색(Full Text Search) 3. Full Text Search 인덱스 생성 4. 전문검색 조건 5. 자연어 검색 6. 불린 검색 7. Bulk Insert 8. 인덱스 작업 정지/재설정 9. 기존의 insert문에 values를 여러 번 나열한 방식 10. 파일로 덤프하여 CSV파일을 사용한 방식 11. bulk insert의 주의사항 1. LIKE 검색의 단점 1) 여러 개의 검색필터를 동시에 매칭시키는 방식 2) 여러 개의 조건문을 AND/OR 시킬 경우 심각한 성능 저하 발생 3) 위 경우, 동일한 결과를 보이지만 DB서버에 부담을 주지 않는 Full Text Search를 사용 2. 전문검색(Full Text Search) 1) 기본적으로..
17강. SQL Advanced 4 [ 목차 ] 1. 데이터베이스 파티셔닝 2. 제약사항 3, 데이터 파티셔닝의 이점 4. 파티셔닝 방법 5. MySQL 파티셔닝 6. 파티션 추가/삭제 7. 파티션 분할/병합 8. 데이터베이스 복제 9. 로그기반 복제 10. 데이터베이스 복제의 준비 1. 데이터베이스 파티셔닝 1) VLDB 1] 전체 DB가 하나의 DBMS시스템에 다 들어가기 힘들어지는 경우 2] 테이블들을 여러 개의 군으로 나눠 분산 저장 3] 하나의 테이블이 방대한 경우에는 사전 방식과 같이 나눠 저장 2) 파티셔닝 : DBMS 레벨 분할 3) 샤딩 : DBMS 외부에서 분할하는 것으로, 응용레벨에서 구별 2. 제약사항 1) 테이블단위 연산이 어려워짐으로 인해 비용문제 발생 1] 조인연산 어려움 -> 정규화문제 2] 역정규화 -> 중복..
16강. SQL Advanced 3 [ 목차 ] 1. 데이터베이스 백업(콘솔) 2. 데이터베이스 백업(워크벤치) 3. 데이터베이스 복원 4. 데이터베이스 로그 1. 데이터베이스 백업(콘솔) 1) 전체 : mysqldump -u아이디 -p --all-datvases > 덤프파일명.sql 2) 특정 DB : mysqldump -u아이디 -p -databases DB명 > 덤프파일명.sql 3) 특정 테이블 : mysqldump -u아이디 -p DB명 테이블명 > 펌프파일명.sql 4) 스키마만 : mysqldump -u아이디 -p --no-data ... 5) 데이터만 : mysqldump -u아이디 -p --no-create-info ... 2. 데이터베이스 백업(워크벤치) 1) dataexprot - export options - expr..
88 프로시저 트리거 인덱스 뷰 insert into department values(1, '수학'); insert into department values(2, '국문학'); insert into department values(3, '정보통신공학'); insert into department values(4, '모바일공학'); insert into student values(1, '가길동', 177, 1); insert into student values(2, '나길동', 178, 1); insert into student values(3, '다길동', 179, 1); insert into student values(4, '라길동', 180, 2); insert into student values(5, '..
15강. SQL Advanced 2 [ 목차 ] 1. 메타데이터 2. 데이터사전 3. 데이터디렉토리 4. CharacterSet 5. Collation 6. 스토리지 엔진 1. 메타데이터 1) 데이터를 위한 데이터 2) DB, 테이블의 스키마에 대한 정보를 저장하는 테이블 3) DB명, 테이블명, 칼럼명, 사용자명, SHOW명령어의 결과값 등이 저장 4) 데이터사전 5) 데이터디렉토리 2. 데이터사전 1) = 시스템 카탈로그 2) 데이터베이스의 정보 저장 3) 일반적으로 일기전용정보 3. 데이터디렉토리 1) DBMS의 모든 데이터가 저장되는 폴더 2) DB, 상태, 로그 저장 4. CharacterSet 1) 문자인코딩 정보/메타데이터의 일종 2) 문자열의 값을 저장할 때 사용되는 기본정보 3) DB/테이블별로 별도 설정 가능 5. Col..
14강. SQL Advanced 1 [ 목차 ] 1. 인덱스 2. 인덱스 추가/삭제 1. 인덱스 1) 검색을 빠르게 하기 위한 자료구조 2) 기본키는 자동으로 인덱스 설정 3) 조인시에도 영향 4) 데이터가 백만 개가 넘어가면 인덱스 유/무가 큰 차이를 보임 2. 인덱스 추가/삭제 CREATE INDEX 인덱스명 ON 테이블명(칼럼명1, 칼럼명2, ...); CREATE UNIQUE INDEX 인덱스명 ON 테이블명(칼럼명); ALTER TABLE 테이블명 DROP INDEX 인덱스명;
13강. SQL(DCL) [ 목차 ] 1. DCL 2. 사용자 추가/삭제 3. 로컬호스트/로컬랜/인터넷전체 사용자의 접속 허용하고 모든 권한 부여 4. 모든 권한 취소 5. 유저에게 부여된 권한 확인 6. 역할 설정 7. 역할 명령어 8. 원격접속권한 설정 1. DCL 1) 권한 및 역할을 설정하는 언어 2) 특정 테이블에 대한 CRUD 권한을 설정 3) GRANT : 권한 부여 4) REVOKE : 권한 회수 5) 주로 DBA(데이터베이스 관리자)가 설정 2. 사용자 추가/삭제 CREATE USER 사용자명@호스트명 IDENTIFIED BY '비밀번호'; FLUSH PRIVILEGES; DROP USER 사용자명@호스트명; 3. 로컬호스트/로컬랜/인터넷전체 사용자의 접속 허용하고 모든 권한 부여 GRANT ALL PRIVILE..
12강. SQL(DDL)3 [ 목차 ] 1. 스키마 수정 명령어 2. 스키마 삭제 명령어 1. 스키마 수정 명령어 1) 칼럼 추가/제거 ALTER TABLE 테이블명 ADD 칼럼명 데이터타입; ALTER TABLE 테이블명 DROP COLUMN 칼럼명; 3) 칼럼명 수정 ALTER TABLE 테이블명 CHANGE 칼럼명 NEW_칼럼명 데이터타입; 4) 칼럼타입 수정 ALTER TABLE 테이블명 MODIFY 칼럼명 데이터타입; 5) 기본키 추가/삭제 ALTER TABLE 테이블명 ADD PRIMARY KEY; ALTER TABLE 테이블명 DROP PRIMARY KEY; 6) 제약조건 추가(1개, 2개) ALTER TABLE 테이블명 ADD UNIQUE (칼럼명); ALTER TABLE 테이블명 ADD CONSTRAINT 제약이름..
11강. SQL(DDL)2 [ 목차 ] 1. 중복정보 제거 2. 정규형 3. 참조무결성 1. 중복정보 제거 1) 테이블 간의 정보는 중복되지 않아야 함(무결성), 즉 하나의 정보는 한 곳에서만 나오도록 해야 함 2) 정규화를 통해 중복성 제거 가능 3) 중복성 제거 후 필요한 정보는 외래키를 통한 조인을 통해 필요한 정보를 구함 2. 정규형 1) 중복을 제거하기 위한 테이블 정의 규칙 2) 제 1 정규형 : 나눌 수 있는 만큼 쪼갬 3) 제 2 정규형 : 테이블의 칼럼들이 기본키와 직접 연관되는 칼럼만으로 구성 4) 제 3 정규형 : 칼럼들 간의 종속관계가 있으면 안 됨 3. 참조무결성 1) 외래키에 적용되는 규칙 2) 외래키와 참조되는 원래 테이블의 키와 관계를 명시 3) 외래키를 참조하면 원래 테이블에 해당 레코드값이 반드시 ..
10강. SQL(DDL)1 [ 목차 ] 1. DDL 2. DB와 테이블 생성 3. 자료형 4. 제약조건 1. DDL 1) 데이터베이스와 데이블을 CRUD하는 것 2) 테이블에 대한 정보는 메타데이터로 데이터사전에 저장, 관리 2. DB와 테이블 생성 create database 데이터베이스명; create table 테이블명 (칼럼명1, 데이터타입(크기), 칼럼명2 ... ) 3. 자료형 1) 정수형 : TINYINT - INT - BIGUNT 2) 실수형 : FLOAT - DOUBLE - DECIMAL 3) 문자열 : CHAR(고정), VARCHAR(가변) 4) TEXT문자열 : TEXT - MEDIUMTEXT - LONGTEXT, 오라클에서는 TEXT를 CLOB이라 지칭 5) BLOB : BLOB - MEDIUBLOG - LA..
9강. SQL(DML)7 [ 목차 ] 1. 서브쿼리 2. 서브쿼리의 종류 3. 다중행 연산자 ALL 4. 다중행 연산자 ANY 5. 다중행 연산자 IN/EXISTS 6. 집합연산 UNION 7. 집합연산 UNION ALL 8. 집합연산 INTERSECT 9. MINUS/EXCEPT 1. 서브쿼리 1) 쿼리문 내에 또 다른 쿼리문이 있는 형태 2) 서브쿼리는 메인쿼리에 포함되는 관계 3) ( )를 사용해 감싸는 형태 4) ORDER BY 사용 불가 5) 사용 가능 위치 : SELECT, FROM, WHERE, HAVING, ORDER BY, VALUES(INSERT), SET(UPDATE) 2. 서브쿼리의 종류 1) 단일형 서브쿼리 1] 결과가 레코드 하나인 서브쿼리 2] 일반 연산자 사용 2) 다중행 서브쿼리 1] 결과가 레코드..
8강. SQL(DML)6 [ 목차 ] 1. LIKE 검색 2. NULL값 3. NULL함수 4. GROUP BY 5. HAVING 1. LIKE 검색 select 칼럼명 from 테이블명 where 칼럼명 like '패턴' 1) 정확한 키워드를 모를 경우 일부만으로 검색하는 방법 2) 와일드카드(%, _)를 사용하여 패턴 매칭 3) % : 0~n 글자, _ : 1글자 4) like의 검색은 dbms에 부담이 많기에 or같은 논리조건자를 중복해서 사용하지 않아야 함 2. NULL값 1) 해당 칼럼의 값이 없다는 의미 2) null값을 가진 칼럼을 검색하려면 is null 사용 3) null값을 가지지 않은 칼럼을 검색하려면 is not null 사용 3. NULL함수 select 함수(ifnull(칼럼명, null반환값) from..
7강. SQL(DML)5 [ 목차 ] 1. SELECT INTO 2. INSERT INTO SELECT 3. CASE ... WHEN ... END 1. SELECT INTO create table 테이블명 select * from 테이블명 1) 쿼리결과를 새 테이블로 생성 2) 기존에 존재하지 않는 테이블이 새로 생성되는 것으로, 일종의 뷰와 동일한 효과 2. INSERT INTO SELECT insert into 테이블명1 select * from 테이블명2 wherer 조건절... 1) 쿼리결과를 기존의 테이블에 추가(기존 테이블이 존재해야 함) 2) select하는 테이블과 insert하는 테이블은 동일한 구조를 지녀야 함 3) 두 개의 펼도 쿼리를 하나로 합침 3. CASE ... WHEN ... END case whe..
6강. SQL(DML)4 [ 목차 ] 1. JOIN의 개념 2. JOIN의 종류 3. ALIAS(별명) 4. VIEW(뷰) 1. JOIN의 개념 select * from 테이블1 join 테이블2 on 테이블1.컬럼명 = 테이블2.컬럼명 ...;. 1) 서로 다른 테이블을 공통 칼럼을 기준으로 합치는 테이블 단위 연산 2) 조인의 결과 테이블은 이전 테이블의 칼럼 수의 합과 같음 3) 조인시 서로 다른 테이블에 같은 컬럼명이 존재하면 구분을 위해 테이블명.컬럼명으로 표시 2. JOIN의 종류 1) 조인 시 NULL값을 허용하는 내부조인과 외부조인으로 구분 2) INNER JOIN : 조인시 NULL 값을 허용하지 않음 3) LEFT JOIN : 조인시 JOIN의 왼쪽 테이블의 NULL값을 포함해서 표시 4) RIGHT JOIN ..
5강. SQL(DML)3 [ 목차 ] 1. LIMIT(ROWNUM, TOP) 2. 집합함수 3. 유용한 함수 1. LIMIT (ROWNUM, TOP) select 컬럼명1, 컬럼명2 ... from 테이블명 where 조건절 limit 숫자 1) 쿼리 결과 중 상위 몇 개만 보여주는 쿼리 2) 대표적인 비표준기능으로, 오라클의 경우 RWOWNUM, SQLServer의 경우 TOP 2. 집합함수 select 집합합수(칼럼명) from 테이블명 where 조건절; 1) count(), avg(), sum(), min(), max(), first(), last(), ... 2) 테이블의 전체레코드를 대상으로 특정 컬럼을 적용해서 한 개의 값을 리턴하는 함수 3) count() : 레코드의 개수를 리턴하는 함수 4) sum()/avg(..
4강. SQL(DML)2 [ 목차 ] 1. DISTINCT 연산자 2. 논리연산자 AND, OR, NOT 3. 논리연산자 IN, BETWEEN 4. 결과정렬 1. DISTINCT 연산자 select distinct 컬럼명1, 칼럼명2, ... from 테이블명; 1) SELECT 문의 결과값에서 특정 컬럼만 출력할 경우 중복된 값들 제거해서 표시하는 기능 2. 논리연산자 AND, OR, NOT select * from 테이블명 where (not) 조건1 and/or (not) 조건2, ...; 1) SELECT문의 조건절에 논리 조건을 적용할 수 있는 연산자 3. 논리연산자 IN, BETWEEN select * from 테이블명 where 조건1 in 칼럼명; select * from 테이블명 where 조건1 and 조건2 ..
3강. SQL(DML)1 [ 목차 ] 1. SQL의 이해 2. SQL의 종류 3. SELECT 명령문 4. INSERT INTO 명령문 5. UPDATE 명령문 6. DELETE 명령문 1. SQL의 이해 1) 데이터베이스에 있는 필요한 정보를 사용할 수 있도록 도와주는 언어 2) 사용방법이나 문법이 다른 언어보다 단순하여 하나를 배우면 모든 DBMS에서 사용 가능 3) 인터프리터언어를 사용 4) 사용자나 프로그램이 필요한 데이터를 가져오기 위해 SQL을 작성 DBMS가 DB에서 사용자가 작성한 SQL을 통해서 데이터를 가져옴 사용자는 SQL을 통해서 가져온 데이터를 확인 2. SQL의 종류 1) DML 1] 테이블의 데이터를 조작하는 기능 2] 테이블의 레코드를 CRUD(create, retrieve, update, delet..
2강. MySQL 설치 및 기본 사용법 [ 목차 ] 1. MySQL 2. MySQL 콘솔 접속 3. 기본 DMBS 사용법 1. MySQL 1) 오라클에서 만든 무료 오픈소스 RDBMS 2) windows, linx, mac 용 모두 존재 3) https://www.mysql.com/products/community/ MySQL :: MySQL Community Edition MySQL Community Edition MySQL Community Edition is the freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active ..
1강. DBMS 기초 [ 목차 ] 1. DBMS(DataBase Management System)의 기초 2. 정렬(=소팅) 3. 인덱스 4. 이진검색 5. B-TREE 6. DBMS의 종류 7. 관계형 데이터베이스 = R DBMS 8. 기본용어 1. DBMS(DataBase Management System) 1) 데이터베이스(DB)를 관리하는 시스템 2) 데이터를 저장하고 유지보수(추가, 검색 수정, 삭제 CRUD)하고 이를 검색하는 시스템 3) 대량의 데이터를 처리하는 시스템 4) 다양한 자료구조와 검색구조(소팅, 인덱싱 등)를 사용해 빠른 검색 가능 5) 대부분 검색(Retrieve)의 빈도가 더 많음. 즉, 검색에 최적화 DB : 테이블들이 모여 이루는 데이터 단위 CRUD : Create, Retrieve, Upda..
개요 주소 https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=72 데이터베이스 | T아카데미 온라인강의 데이터베이스의 기초인 SQL언어의 기초 및 데이터베이스의 기본인 DML/DDL/DCL에 대하여 알아보고 실무에서 많이 사용되는 데이터베이스인 MySQL을 학습합니다. tacademy.skplanet.com 학습내용 데이터베이스의 기초인 SQL언어의 기초 및 데이터베이스의 기본인 DML/DDL/DCL에 대하여 알아보고 실무에서 많이 사용되는 데이터베이스인 MySQL을 학습합니다. 학습대상 DBMS를 이용자하는 개발자