DB/etc2023. 10. 10. 13:07데이터베이스 트리거(Database Trigger)

테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업트리거는 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용된다.   무결성 제약 조건 유지상황: 주문 테이블(Order)에 주문 금액(OrderAmount)이 양수인 경우만 허용트리거: 주문 테이블에 INSERT 또는 UPDATE가 발생할 때마다 주문 금액이 음수인지 확인CREATE TRIGGER CheckOrderAmountON OrdersAFTER INSERT, UPDATEASBEGIN IF EXISTS (SELECT 1 FROM INSERTED WHERE OrderAmount 이 트리거는 주문 테이블에 새 주문이 삽입되거나 주문이 갱신될 때마다 실행되어 주문 금액이 음수인 경우 해당 주문을 거부  이력 추적상황: 주문 데이..

DB/etc2023. 10. 5. 16:29OPENQUERY

OPENQUERY원격 서버에 대한 쿼리를 실행하고 결과를 가져오는 데 사용분산 데이터베이스 환경에서 다른 데이터베이스 서버 또는 소스에 대한 쿼리를 실행하고 데이터를 가져올 때 유용 다른 데이터베이스 서버 또는 소스와의 데이터 통합 및 조회 작업을 수행  OPENQUERY ( linked_server , 'query' )linked_server: 연결된 서버(Linked Server)의 이름연결된 서버는 현재 SQL Server와 다른 데이터베이스 서버 또는 데이터 소스와의 연결을 설정하는 데 사용'query': 실행할 원격 쿼리, 이 부분에는 연결된 서버에서 실행할 SQL 쿼리가 들어감

DB/etc2023. 10. 5. 16:28MSSQL 자동 증가 열(IDENTITY)과 시퀀스(Sequence)

자동 증가 열(IDENTITY)자동 증가 열은 테이블의 열(column) 중 하나를 정의할 때 사용이 열의 값을 데이터가 삽입될 때마다 자동으로 증가시킴주로 기본 키(primary key)로 사용되며, 각 행(row)마다 고유한 값을 가짐예시 ID 열은 자동으로 1부터 시작하여 1씩 증가하는 값을 가짐 CREATE TABLE MyTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name VARCHAR(50)); 시퀀스시퀀스는 별도의 객체로 정의되며, 테이블과는 독립적으로 존재시퀀스는 데이터를 생성하는 데 사용되는 일련 번호를 생성하는 데 주로 사용시퀀스를 사용하면 여러 테이블에서 같은 시퀀스를 공유하거나 복잡한 값 생성 규칙을 정의할 수 있음예를 들어, 아래와 같이 시..

DB/etc2023. 10. 5. 16:27MSSQL OPTION(RECOMPILE)

OPTION(RECOMPILE)- 해당 옵션을 사용하면 쿼리가 실행될 때마다 실행 계획을 재 컴파일하는 것을 지시-  SQL Server가 매번 최신의 테이블 통계 또는 조인 조건과 같은 환경 변경 사항을 고려하여 최적의 실행 계획을 생성  OPTION(RECOMPILE)을 사용하는 상황매개 변수 값이 자주 변경되는 경우 매개 변수 값을 고려한 최적의 실행 계획을 유지하기 위함조건부 논리를 가진 동적 SQL 동적 SQL을 사용하고 조건부로 WHERE 절이나 조인 조건이 변경되는 경우, 실행 계획을 동적으로 조정하기 위함특정 상황에서 최적의 실행 계획이 필요한 경우 일부 복잡한 쿼리나 쿼리 조건에 따라 최적의 실행 계획이 다를 때,OPTION(RECOMPILE)을 사용하여 매번 최적의 실행 계획을 생성 +..

DB/etc2023. 10. 5. 11:07매핑 테이블(mapping table)

다른 두 개체나 데이터 집합 간의 상호 관계를 기록하고 매핑하는 데 사용되는 테이블   관계 형성두 가지 서로 다른 데이터 집합 간의 관계를 정의하고 관리하는 데 사용됩니다. 예를 들어, 데이터베이스에서는 매핑 테이블을 사용하여 두 테이블 간의 관계를 나타내는 데 활용합니다.외래 키 관리매핑 테이블은 다른 테이블에서 가져온 데이터를 참조하거나 관리할 때 외래 키(Foreign Key) 관계를 설정하는 데 사용됩니다. 이를 통해 데이터의 일관성과 무결성을 유지할 수 있습니다.다대다 관계 처리두 엔티티(데이터 요소) 간의 다대다(N:N) 관계를 다룰 때 매핑 테이블을 사용합니다.이 테이블은 두 엔티티 간의 관계를 중개하고 추가 정보(예: 타임스탬프, 상태)를 저장할 수 있습니다.데이터 통합서로 다른 데이터 ..

DB 트랜잭션
DB/etc2023. 10. 5. 11:04DB 트랜잭션

>데이터베이스의 일관성과 안전성을 보장하기 위해 사용1.원자성 (Atomicity)- 트랜잭션은 하나의 원자적인 작업 단위로 간주됩니다. - 모든 작업은 전부 실행되거나 전혀 실행되지 않아야 합니다. - 트랜잭션 내의 하나의 작업이 실패하면 모든 작업이 롤백되어 이전 상태로 복원됩니다. *이를 통해 데이터의 일관성을 유지할 수 있습니다.2.일관성 (Consistency)- 트랜잭션은 데이터베이스의 일관성을 보장합니다. - 트랜잭션을 통해 정의된 작업은 데이터베이스의 미리 정의된 규칙과 제약 조건을 준수해야 합니다. - 트랜잭션을 사용하면 데이터베이스의 일관성을 유지할 수 있습니다.3.고립성 (Isolation)- 트랜잭션은 서로 간섭하지 않고 독립적으로 실행됩니다. - 동시에 실행 중인 다른 트랜잭션의 ..

DB 인덱스 INDEX
DB/etc2023. 10. 5. 11:04DB 인덱스 INDEX

1. 클러스터형 인덱스 (Clustered Index)클러스터형 인덱스는 데이터베이스 테이블의 행들을 물리적으로 정렬하는 방법을 나타낸다.각 테이블당 하나의 클러스터형 인덱스만 가질 수 있다. 주로 테이블의 기본 키(primary key) 컬럼에 클러스터형 인덱스를 생성하는 것이 일반적테이블의 데이터는 클러스터형 인덱스의 키 값에 따라 정렬되어 저장됩니다.테이블에 클러스터형 인덱스가 없는 경우에는 테이블의 데이터는 힙(Heap) 구조로 저장되며 물리적인 정렬이 없다.--******클러스터형 인덱스를 사용한 경우******-- 테이블 생성 및 클러스터형 인덱스 설정CREATE TABLE #CLUSTER_EX ( ID INT PRIMARY KEY CLUSTERED, --"ID" 열에 클러스터형 인덱스를..

ORACLE, MYSQL  ERD 생성
DB/etc2023. 9. 13. 09:39ORACLE, MYSQL ERD 생성

ORACLE 1.데이터딕셔너리선택 2.접속하기 3.HR선택 4. 뽑고 싶은 테이블 선택하고 다음 누르면 뜬다!! MYSQL 계속 next~ EER 다이어그램 등장~

DB/etc2023. 9. 12. 17:10DB - 엔티티, 테이블의 차이

#엔티티(Entity) - 객체 , 추상적 - DB에서 한 건의 자료를 구성하는 레코드로 속성을 가진다. ex) 과목 : 국,영,수 - DB나 SQL상에 존재하지 않는다. 테이블과 달리 그냥 일종의 개념이다. - 엔티티 사이의 관계: 릴레이션(relationship) - 이것을 도표로 나타낸 것 : ERD(Entity Relationship Diagram) - 도메인 > 엔티티 > 속성 #테이블 - 테이블은 데이터베이스나 SQL에 실제로 존재하며 물리적인 구조를 지니고 있다. #엔티티, 테이블의 차이 엔티티 테이블 속성, 어트리뷰트(Attribute) 컬럼(Column) 관계, 릴레이션(Relation) 관계, 릴레이션(Relation) 키 그룹(Key group) 인덱스(Index) 엔티티(Entity..

image