database(23)
-
회복과 병행제어
👍 Warming Up - 트랜잭션이란? 👊 트랜잭션 : 데이터베이스에서 하나의 작업을 처리하기 위해 필요한 연산들의 집합 회복과 병행제어를 알기 위해서는 트랜잭션을 먼저 알아야 한다. 쉽게 얘기하면 트랜잭션은 데이터베이스의 활용을 절차적 관점에서 본 것이다. 트랜잭션은 최종적으로 COMMIT 되거나 ROLLBACK 되어야 한다. 하나의 트랜잭션 안에 마지막 연산까지 정상적으로 완료된 상태를 "부분완료"라고 하는데, 아무리 마지막 연산까지 끝냈다고 해서 전체 트랜잭션이 다 성공했다고 보장할 수 없기 때문이다. 정말 오류가 아예 없었다면 COMMIT으로 트랜잭션 결과를 데이터베이스에 반영한다. 하지만 "부분완료" 상태에서 오류가 발생하면 "실패" 단계로서 ROLLBACK을 실행하여 해당 트랜잭션이 실행되기..
2020.06.22 -
Stored Procedure
내장형 SQL이 외부 응용프로그램에 SQL문을 삽입하여 연동시키는 매크로 형태였다면, Stored Procedure는 아예 SQL을 담당하는 부분을 별도로 독립시키고 필요할 때 호출하는 서브루틴 형태이다. 내장형 SQL은 주 프로그램과 같이 존재하기 때문에 메모리 사용률이 나쁘다. 하지만 Stored Procedure는 연속된 SQL 문장을 하나로 모아 서버에 미리 컴파일해서 저장해놓고, 모듈화로 필요시마다 호출하기 때문에 실행시간이 빠르고 유지보수하기에도 좋다.
2020.06.21 -
커서 - 내장형 SQL로 반환되는 단 하나의 튜플을 여러개로 늘리는 반복문
👍 What is Cursor? SQL은 여러 개의 튜플을 다루는 데 반해, C++, JAVA 등 언어는 한 번의 연산의 결과를 하나의 변수에 저장하기 때문에 단 하나의 튜플만 다룰 수 있다. 커서는 SQL이 다른 프로그래밍 언어에 내장될 때의 한계를 해결하고자 나온 일종의 "포인터"이다. 2020/06/21 - [컴퓨터언어/Database] - 내장형(Embedded) SQL - 다른 프로그램 내에 삽입된 SQL 내장형(Embedded) SQL - 다른 프로그램 내에 삽입된 SQL 지금까지의 SQL은 모두 사용자가 명령어를 내리는 즉시 DBMS가 결과를 보여주는, "대화식 SQL"이었다. 하지만 현대 응용프로그램은 데이터베이스와 연동되는 경우가 매우 많기 때문에, 프로그램 구 an-onymous.tis..
2020.06.21 -
트리거 - 서로 연동된 릴레이션에 연쇄조작을 가해 무결성 확보
👍 What is Trigger? 한 테이블에 CRUD를 가하면, 그와 연관된 다른 테이블 내 데이터에도 당연히 영향을 주게 된다. 그러나 DB는 매우 복잡하고 실무에서 트랜잭션 발생 시 마다 일일이 테이블들을 찾아서 수정한다는 것은 말도 안된다. 이때 연관된 데이터들을 찾아 자동갱신시킴으로써 참조 무결성을 지켜주는 방법이 있는데, 이를 "트리거"라고 한다. 예를 들어, , , 테이블이 있다고 하자. 그리고 테이블에는 새로 입고한 "입고수량"이 있고, 테이블에는 현재 매장에 남은 "재고수량"이 있고, 테이블에는 지금까지 팔린 "판매수량"이 있다고 가정하자. 이 3개의 속성은 모두 긴밀한 관계를 가지고 있다. 입고수량이 곧 재고수량으로 더해지고, 판매수량이 곧 재고수량에서 마이너스되기 때문이다. 이처럼 복..
2020.06.21 -
[SQL] DBA가 DBMS와 대화하는 언어
👍 SQL이란? 사용자의 요구분석에 따라 개념적 설계, 논리적 설계, 물리적 설계를 했다면, 이제는 실제로 DBMS를 이용하여 테이블을 구현할 수 있다. SQL은 DBA(데이터베이스 관리자)가 DBMS를 이용하여 데이터를 처리할 때 사용하는 언어다. SQL을 세부적으로 나누어보면, 인터페이스(상호작용)와 구성요소로 달리 구분할 수 있다. 👊 SQL의 인터페이스에 따른 분류 대화식 SQL DBA가 DBMS 안에서 SQL을 직접 사용하며 정보를 계속 주고받는 방식 내장 SQL 다른 프로그램 안에 삽입되어, 그 프로그램이 사용자의 요청에 따라 DB에 접근할 때 이미 등록된 SQL에 따라 정보를 보여주는 방식 👊 SQL의 구성요소에 따른 분류 DDL(데이터 정의어) DCL(데이터 제어어) DML(데이터 조작어)..
2020.06.18 -
[관계 데이터 연산] 관계형 데이터베이스의 이론적 기반 - 관계대수, 관계해석
👊 관계 데이터 연산이란? 데이터베이스는 현실 속 정보를 컴퓨터에 저장하고 이를 표현하기 위해서 존재한다. 이때 현실 속 정보를 컴퓨터의 비트로 대응시키는 것이 "데이터 모델링"이고, 이렇게 만들어진 각 릴레이션별 "개체"가 "데이터 모델"이다. 데이터 모델은 반드시 다음 3가지 요소(S.O.C)를 가지고 있어야 한다. Structure : 데이터베이스의 각 개체가 서로 어떤 관계를 가지고 있는가 ex & Operation : 데이터를 저장하고 표현하기 위해 필요한 연산은 무엇이 있는가 Constraint : 무결성을 지키기 위한 조건은 무엇인가 우리는 이렇게 만들어진 데이터 모델들을 서로 가공해서 원하는 결과를 얻어야 하는데, 그러려면 DBMS를 사용할 수 있어야 하고, 이때 필요한 것이 SQL 언어다..
2020.06.18