sql 9

ER모델에 대해 알고계신가요? (2)

05. 약한 엔티티 타입 어떤 경우에는 엔티티 타입 내의 엔티티들이 자체적으로 갖고 있는 애트리뷰트들의 값에 의해서 고유하게 식별이 안됩니다. 예를 들어 회사에서 어떤 사원의 부양가족 이름은 다른 사원의 부양가족의 이름과 같을 수 있습니다. 한 가지 해결 방안은 회사의 사원들의 모든 부양가족에 대해서 고유한 번호를 부양하는 것입니다. 이런 고유한 번호는 데이터베이스 처리에 사용되지 않을 수 있습니다. 또 다른 해결 방안은 부양가족이 속한 사원의 번호를 부양가족의 이름과 결합하여 부양가족의 키로 정하는 것입니다. 한 사원의 부양가족 이름은 모두 다를 것이므로, 사원번호와 부양가족의 이름을 결합하면 모든 사원들의 부양가족들을 고유하게 식별할 수 있습니다. 부양가족의 이름처럼 한 사원에 속한 부양가족 내에서는..

트리거(trigger)와 주장(assertion) 그리고 내포된 SQL

저장된 데이터의 의미적 정확성을 보장하기 위해서, 테이블을 정의할 때 데이터베이스 스키마의 한 부분으로서 무결성 제약조건을 명시해야 합니다. 테이블 정의와 별도로 데이터베이스의 무결성을 시행하는 메커니즘인 트리거와 주장을 알아보겠습니다. 제약조건이 트리거보다 성능이 우수하고, 코딩이 불필요하며, 선언하고 수정하기가 용이하므로 가능하다면 제약조건을 사용하는 것이 좋습니다. 01. 트리거(trigger) 트리거는 명시된 이벤트(데이터베이스의 갱신)가 발생할 때마다 DBMS가 자동적으로 수행하는, 사용자가 정의하는 문(프로시저)이다. 트리거는 데이터베이스의 무결성을 유지하기 위한 일반적이고 강력한 도구이며, 테이블 정의 시 표현할 수 없는 기업의 비즈니스 규칙들을 시행하는 역할을 합니다. 무결성 제약조건을 유..

SQL의 데이터베이스 갱신의 세가지 명령어

오라클의 SQL의 데이터 조작어에는 데이터베이스를 갱신하는 세 가지 명령이 있습니다. INSERT문은 릴레이션에 새로운 투플을 삽입하고, DELETE문은 릴레이션에서 기존의 투플을 삭제하며, UPDATE문은 기존의 투플의 애트리뷰트 값들을 수정합니다. 01. INSERT문에 대하여 INSERT문은 기존의 릴레이션에 투플을 추가합니다. 참조되는 릴레이션에 투플이 추가되는 경우에는 참조 무결성 제약조건의 위배가 발생하지 않으나 참조하는 릴레이션에 투플이 추가되는 경우에는 참조 무결성 제약조건을 위배할 수 있습니다. INSERT문은 릴레이션에 한 번에 한 투플씩 추가하는 것과 한 번에 여러 개의 투플들을 추가할 수 있는 것으로 구분합니다. 한 번에 한 투플씩 추가하는 INSERT문의 구문은 다음과 같습니다. ..

SQL의 SELECT문에 대하여(3)

03. SELECT문의 여러 가지 검색과 연산 ► 범위를 사용한 검색 원하는 투플들의 조건을 명시하기 위해서 WHERE절에 범위를 나타내는 연산자인 BETWEEN을 사용할 수 있습니다. BETWEEN의 장점은 SQL문의 WHERE절을 좀 더 읽기 쉽게 만들어준다는 것입니다. ► 리스트를 사용한 검색 IN은 리스트 내의 값과 비교합니다. [IN]의 부정은 [NOT IN]입니다. 다음의 WHERE절은 DNO의 값이 (1,2,3)에 속하는지를 검사합니다. WHERE DNO IN (1,2,3) 따라서 이 WHERE절은 OR를 사용하여 다음과 같이 표현할 수 있습니다. IN을 사용하면 다수의 OR을 사용할 필요가 없습니다. WHERE DNO = 1 OR DNO = 2 OR DNO = 3 ❶ IN Q. 1번 부서나..

SQL의 SELECT문에 대하여(2)

03. SELECT문의 여러 가지 검색과 연산 ► 별칭(alias) 서로 다른 릴레이션에 동일한 이름을 가진 애트리뷰트가 속해 있을 때, 애트리뷰트의 이름을 구분하는 한 가지 방법은 애트리뷰트 이름 앞에 릴레이션의 이름을 붙이는 것입니다. EMPLOYEE.DNO 또 다른 방법은 투플 변수(tuple variable)를 사용하는 것입니다. SQL에서 투플 변수는 한 릴레이션에 연관됩니다. 투플 변수는 FROM절에서 릴레이션의 이름 다음에 AS(생략 가능)와 함께 명시됩니다. 투플 변수를 별칭이라고도 부르며, 아래와 같이 표현합니다. EMPLOYEE릴레이션을 E, DEPARTMENT릴레이션을 D로 표현합니다. FROM EMPLOYEE AS E, DEPARTMENT AS D 투플 변수는 편리성과 질의의 이해도..