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)

📌 SQL Server OPTION(RECOMPILE) ✅ OPTION(RECOMPILE)은 쿼리 실행 시마다 새로운 실행 계획을 생성하는 옵션✅ 매개변수 값이 자주 변하거나, 동적 SQL을 사용할 때 최적의 실행 계획을 유지하기 위해 사용✅  SQL Server가 매번 최신의 테이블 통계 또는 조인 조건과 같은 환경 변경 사항을 고려하여 최적의 실행 계획을 생성✅ 언제 사용해야 할까?✔️ 매개변수 값이 자주 변경될 때 → 특정 값에 최적화되지 않도록 방지✔️ WHERE 절이나 JOIN 조건이 동적으로 바뀔 때 → 실행 계획을 최신 상태로 유지✔️ 쿼리 실행 성능이 일정하지 않을 때 → 최적화된 실행 계획을 적용✅ 사용 예제SELECT * FROM OrdersWHERE OrderDate >= @Star..

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