데이터베이스 - View, Trigger
2021. 5. 24. 14:57
🚛 Database/Database
https://www.youtube.com/watch?v=V5GN2FMBl4w
데이터베이스 - Transaction
2021. 5. 12. 14:58
🚛 Database/Database
트랜잭션의 특성 Atomicity = all or nothing : 한 트랜잭션 내의 모든 연산들이 완전히 수행되거나 전혀 수행되지 않음 Consistency : 트랜잭션이 수행된 후에도 데이터베이스가 그 전과 같은 일관된 상태를 가진다. "동시에 여러 사용자가 같은 데이터에 접근하려고 할 때" 발생하는 상황 Isolation : 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전까지 다른 트랜잭션이 접근하지 못하도록 한다. Durability : 갱신한 후에 시스템이 고장나더라도 갱신된 데이터들은 쭉 지속되어야 한다. Commit : 트랜잭션의 완료 Abort : 트랜잭션의 철회 = Rollback : 초기상태로 복귀 동시성 제어 serial schedule (직렬 스케줄) : 여러 트랜잭..
데이터베이스 - Relation design (1NF, 2NF, 3NF, BCNF)
2021. 5. 10. 14:54
🚛 Database/Database
Database anomaly(=데이터베이스 이상현상) 1. update anomaly(=갱신 이상) - 하나 바꾸려면 다 바꿔야함 - 데이터 갱신시 일관성 유지가 안되는 현상, 데이터 불일치(=inconsistency)발생 - 최유정 학생이 연락처를 변경하는 경우 B01, C01 튜플의 정보를 수정해야 하는데 1개의 튜플만 수정할 경우 발생 2. insert anomaly(=삽입 이상) - 어떤 속성 값을 넣지 않는 이상 삽입이 불가능 - 튜플 삽입시 지정하지 않은 속성값이 NULL을 갖는 현상 - 1604 홍길동 010-7777-3333 학생이 있으나 아직 수강하는 과목이 존재하지 않는 경우에는 과목코드에 NULL값이 저장되는 현상 3. delete anomaly(=삭제 이상) - 연쇄 삭제에 의한 ..
데이터 모델링
2021. 5. 4. 21:43
🚛 Database/SQL
Entity Entity 유형이 될 수 있는 조건 Entity example 관계, 관계 유형 관계 유형 방향성 관계 연결, 관계 군 속성, 속성 유형 (Attribute type) 여러개의 속성 유형으로 강사를 표현한다. 각 속성 유형은 속성 값을 갖는다. 속성 유형 종류 속성 유형 중복을 조심해야 한다. 식별자 결합해서 하나의 식별자를 만든다. 속성 유형값 정의 Cardinality Optionality (선택성) 고객은 때때로 주문을 발행한다. 주문은 항상 고객이 발행할 때만 발행 된다. 엔티티 관계도 작성 정규화
데이터베이스 - Primary key, Alternate key
2021. 4. 30. 11:11
🚛 Database/Database
식별자(Identifier)란? 한 실체(Entity)내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일 속성 또는 그룹 속성을 말한다. 실체 내에서 식별자에 동일한 값이 중복될 수 없으며, 이를 실체 무결성이라고 한다. 모든 Entity는 반드시 하나 이상의 식별자를 보유해야 하며 여러 개의 식별자를 보유하는 경우도 있다. 주로 이 식별자를 통해 해당 인스턴스의 구분이 가능해지며 검색이나 조인시 매우 중요하게 작용한다. 후보키(Candidate Key) 실체(Entity) 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 속성으로, 하나 또는 여러 개의 속성으로 구성된다. 즉, 기본키(PK)가 될 수 있는 후보 속성이다. 아래의 예에서는 '사번'과 '주민번호'가 후보키에 해당한다. 기본키(Prima..
데이터베이스 - API
2021. 4. 14. 12:25
🚛 Database/Database
데이터베이스 - 내장 SQL (Embedded SQL), 커서 (Cursor)
2021. 4. 14. 10:45
🚛 Database/Database
응용프로그램(C, java, C# 등) 안에는 DB와 같은 명령어가 들어와야 한다. 따라서 Embedded SQL, 즉 내장 SQL이 된다. EXEC SQL 로 감싸서 사용 커서 : 데이터베이스 튜플을 쭉 가지고 왔는데 잘 가지고 왔니? 하면서 접근 하는 것 한번에 하나씩 이동하면서 처리할 수 있다. 1. 선언 2. 개방 3. 검색 4. 닫는다 1. declare 로 커서 선언 2. 여러개의 튜플들을 가져온다. 호스트 변수와 DB의 변수와 같은 것을 가져온다. open : 커서가 생성이 되었으니 개방을 한 다음에 이용한다. fetch : 커서에서 호스트 변수로 검색한다. close : 커서를 닫는다.
데이터베이스 - Relation Algebra
2021. 3. 10. 17:46
🚛 Database/Database
3x2 = 6 Join은 Selection과 Cross product의 조합으로 대체 가능 Natural join : 동일한 이름을 가진 모든 필드의 동등조건에 맞는 행을 선택 각 RA는 중복된 튜플이 존재할 수 있다 : NO 뭐가 개런티 해주냐? 어떤 개념인가? Key Key attribute 값이 다 다르므로 모든 relation에는 한개 이상의 key가 존재해야하만 한다 : Yes R Q L 는 read write를 다 의미한다. Read는 retrieve 라고 부른다 attribute Write는 modify 라고 부른다 tuple 스키마를 다루는 하나의 예제로서 하나의 쿼리를, 어떤 것을 다루게 된다 : Create table = 스키마를 다루는 부분. 스키마를 다루는 language : DDL..
데이터베이스 - DBMS
2021. 3. 10. 16:54
🚛 Database/Database
DBMS : 데이터베이스의 모든 액세스를 관리하는 응용 소프트웨어 데이터들을 정의, 조작, 제어 한다. 정의 : DB 생성시 DB를 정의한다. 조작 : 다수의 이용자들이 공동으로 이용할 수 있게 한다. 제어 : 정확도와 보안성을 높인다. DDL (Data Definition Language) DB의 구조(Schema, Domain, Table, View, Index)를 정의하는 언어 명령어 기능 CREATE Schema, Domain, Table, View, Index를 정의한다. ALTER Table에 대한 정의를 변경하는데 사용 DROP Schema, Domain, Table, View, Index 삭제 DML (Data Manipulation Language) 명령어 기능 SELECT 조건에 맞는 ..
SQL - IN
2021. 2. 23. 15:15
🚛 Database/SQL
특정 집합 혹은 리스트가 존재하는지 확인한다. SELECT * FROM TABLE_NAME WHERE COLUMN_NAME IN (VALUE1, VALUE2, ...) COLUMN_NAME이 가지고 있는 집합에서 VALUE1, VALUE2 등의 값이 존재하는지 확인 IN과 OR 은 역할이 같다. OR보다 IN이 가독성이 좋고, 알아보기가 쉽다 DBMS 최적화, SQL 최적화 옵티마이저 특성상 IN 조건이 유리할 때가 많다. IN 을 쓰면 되는데 굳이 OR을 쓸 필요가 없다. NOT IN
SQL - LIMIT, OFFSET (부분 범위 처리)
2021. 2. 23. 15:03
🚛 Database/SQL
SELECT * FROM TABLE_NAME LIMIT N OFFSET M ; 출력하는 행의 수를 지정하면서 시작위치를 지정한다. OFFSET M값의 시작위치는 0이다.
SQL - WHERE 절 (조건 설정)
2021. 2. 23. 14:30
🚛 Database/SQL
WHERE 절은 집합을 가져올 때 어떤 집합을 가져올 것인지에 대한 조건을 설정하는 절이다. SELECT COLUMN_1 , COLUMN_2 , ... FROM TABLE_NAME WHERE ; 조건이 한 개 일 때 조건이 두 개 일 때
SQL - SELECT DISTINCT (중복값 제외)
2021. 2. 23. 14:25
🚛 Database/SQL
SELECT 시 DISTINCT를 사용하면 중복 값을 제외한 결과값이 출력된다. 즉 같은 결과의 행이라면 중복을 제거할 수 있다. SELECT DISTINCT COLUMN_1 FROM TABLE_NAME; COLUMN_1의 값이 중복값 존재시 중복값을 제거 SELECT DISTINCT COLUMN_1, COLUMN_2 FROM TABLE_NAME ORDER BY COLUMN_1, COLUMN_2; COLUMN_1+COLUMN_2의 값이 중복 값 존재 시 중복 값을 제거 결과를 명확하게 하기위해 ORDER BY 절 사용 DISTINCT 사용 + 컬럼 두개 + ON 사용 DISTINCT 사용 + 컬럼 두개 + ON 사용 + DESC 정렬
SQL - ORDER BY (정렬)
2021. 2. 23. 14:12
🚛 Database/SQL
ORDER BY SELECT문에서 가져온 데이터를 정렬하는데 사용된다. 업무 처리상 매우 중요한 기능이다. SELECT COLUMN_1 , COLUMN_2 FROM TBL_NAME ORDER BY COLUMN_1 ASC ,COLUMN_2 DESC ; 추출 대상 컬럼 추출 대상 테이블명 입력 COLUMN_1은 오름차순 정렬(Default는 ASC) COLUMN_2은 내림차순 정렬(Default는 ASC)
SQL - SELECT, 컬럼 추가(INSERT), 수정(UPDATE), DELETE
2020. 12. 31. 20:17
🚛 Database/SQL
SHOW TABLES; DESC ; VARCHAR(size) : variable character NOT NULL : 공백을 허용하지 않겠다. NULL : 값이 없는 것을 허용한다. PRIMARY KEY() : 각각의 값이 고유해야 한다. INSERT INTO INSERT INTO topic(title, description, created, author,profile) VALUES('MySQL','MySQL is ...', NOW(),'sunwoochan','developer'); NOW() : 현재 시간이 자동으로 적힌다. SELECT * FROM 모든 행을 출력한다. SELECT 컬럼 FROM 테이블; SELECT id, title, created, author FROM topic; 가져오고 싶은 ..