일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- oracle
- 코틀린
- python
- Spring boot
- 파이썬
- lombok
- 자바
- android
- kotlin
- Spring Batch
- write by chatGPT
- NIO
- 뉴턴역학
- GPT-4's answer
- 소프트웨어공학
- JVM
- write by GPT-4
- GIT
- 인프라
- Java
- 유닉스
- 시스템
- 자바네트워크
- Database
- 웹 크롤링
- 자바암호
- 역학
- chatGPT's answer
- 고전역학
- 리눅스
- Today
- Total
목록Database Learning Guide (25)
Akashic Records
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cnhv5B/btsuIAp9fTv/w0aO8lInZxJMMAN45ZtOBK/img.jpg)
인덱스(Index)는 데이터베이스에서 검색 속도를 향상시키기 위한 데이터 구조입니다. 데이터베이스 테이블의 열(컬럼)에 대한 인덱스를 생성하면 데이터베이스 시스템은 검색 및 정렬 작업을 더 효율적으로 수행할 수 있습니다. 인덱스는 주로 다음과 같은 목적으로 사용됩니다: 검색 속도 향상: 인덱스를 사용하면 특정 값을 검색할 때 해당 값을 가진 행을 빠르게 찾을 수 있습니다. 인덱스는 데이터베이스 엔진이 검색을 더 빠르게 수행할 수 있도록 도와줍니다. 정렬: 인덱스는 데이터를 정렬된 순서로 저장하므로 정렬된 결과를 얻는 데 효율적입니다. 이를 통해 정렬된 결과를 반환하는 쿼리의 성능을 향상시킬 수 있습니다. 중복 방지: 고유(unique) 인덱스를 사용하면 열의 중복 값을 방지할 수 있습니다. 이를 통해 데..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zo5is/btslCbMTosk/OdhKwHSUMgka5UhkGOeitK/img.jpg)
데이터베이스 마이그레이션은 한 데이터베이스 시스템에서 다른 시스템으로 데이터베이스를 이동하는 과정입니다. 이 작업은 주로 새로운 시스템으로 이동하거나 업그레이드를 할 때 수행됩니다. 각 단계는 꼼꼼한 계획과 테스트를 요구하며, 데이터의 손실이나 중단 시간을 방지하기 위해 주의를 기울여야 합니다. 데이터베이스 마이그레이션 절차는 다음과 같습니다: 평가: 먼저 데이터베이스의 현재 상태를 평가합니다. 이 평가 단계는 현재의 데이터베이스 구조, 데이터의 양, 데이터 형식 등을 포함합니다. 또한, 마이그레이션 후의 목표 데이터베이스 시스템의 요구사항과 구조를 이해하는 것이 중요합니다. 계획: 마이그레이션 프로세스를 계획합니다. 이 단계에서는 어떤 데이터가 마이그레이션이 필요한지, 어떤 순서로 이동해야 하는지, 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/blq33Q/btsg9eVmYtU/GJDUdeKljBtzPSi4lkAlyK/img.png)
아카이브 로그는 Oracle 데이터베이스에서 매우 중요한 역할을 하는데, 그 이유는 아카이브 로그를 사용하여 데이터베이스를 특정 시점으로 복구하거나, 데이터베이스의 일관성을 유지하는 데 도움이 되기 때문입니다. 따라서 아카이브 로그의 안전한 백업은 데이터베이스 관리의 중요한 부분입니다. Oracle의 RMAN(Recovery Manager)을 사용하여 아카이브 로그를 백업할 수 있습니다. RMAN은 Oracle 데이터베이스 백업 및 복구 작업을 자동화하고 최적화하는 도구입니다. 다음은 RMAN을 사용하여 아카이브 로그를 백업하는 방법입니다: Oracle의 RMAN(Recovery Manager)을 사용하여 아카이브 로그 백업 위치를 지정하려면 다음 단계를 수행해야 합니다. 먼저, 아카이브 로그 백업을 저..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6NicN/btsg86JDW55/KVKKlBrJEIKcQtFmT6D5x0/img.png)
Oracle의 CASE 문은 프로그래밍에서의 if-then-else 로직과 유사하게 동작합니다. 이는 특정 조건에 따라 다른 값을 반환하도록 SQL 쿼리를 설정할 수 있게 해줍니다. 기본적인 형태는 다음과 같습니다: CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END 여기서 각 조건은 순서대로 평가되고, 처음으로 참인 조건의 결과가 반환됩니다. 모든 조건이 거짓일 경우, ELSE 절의 결과가 반환됩니다. 예를 들어, 다음 쿼리는 Customer 테이블의 CreditLimit 칼럼을 기반으로 새로운 칼럼을 생성합니다: SELECT CustomerName, CreditLimit, CASE WHEN CreditL..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bh5szz/btsgl6xYaut/tFeNKVzbQWSEOPxYMbDSWk/img.png)
데이터베이스에서 그룹 함수(또는 집계 함수)는 특정 칼럼의 값들에 대해 연산을 수행하여 단일 값을 반환하는 함수입니다. 이 함수들은 SQL 문장 내에서 사용될 수 있으며, 주로 SELECT 문장과 함께 GROUP BY 절에서 사용됩니다. 다음은 주요 그룹 함수들과 그들의 설명입니다: 1. COUNT: 지정된 칼럼의 행 수를 반환합니다. NULL 값은 제외됩니다. SELECT COUNT(CustomerID) AS "Number of Customers" FROM Customers; 이 쿼리는 Customers 테이블에서 CustomerID 칼럼의 행 수를 반환합니다. 2. SUM: 지정된 칼럼의 총합을 반환합니다. NULL 값은 제외됩니다. SELECT SUM(OrderAmount) AS "Total Ord..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Z8HVZ/btsgkILafjB/DYntSQIuCwYFHU1hBHf0E1/img.png)
데이터베이스에서 Join은 두 개 이상의 테이블에서 열을 결합하여 결과를 생성하는 방법입니다. 이는 두 테이블 사이의 관계를 기반으로 합니다. 주요 Join 유형은 다음과 같습니다: INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, CROSS JOIN 등입니다. INNER JOIN: 두 테이블에서 조건이 일치하는 행만 반환합니다. 즉, 두 테이블의 교집합을 반환합니다. SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID; 이 쿼리는 Orders 테이블과 Customers 테이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WKbGQ/btsglygyrW2/1O02KUmkuwh3RFIaoezxNk/img.png)
CBO(Cost-Based Optimizer)는 Oracle 데이터베이스의 쿼리 최적화 방법 중 하나입니다. CBO는 쿼리를 실행하는데 필요한 예상 리소스 사용량(비용)을 계산하고, 이를 기반으로 가장 효율적인 쿼리 실행 계획을 선택합니다. CBO의 작동 방식을 이해하려면 Oracle 데이터베이스가 수집하는 통계 정보에 대해 알아야 합니다. 이러한 통계에는 테이블 크기, 테이블의 행 수, 테이블의 열 분포, 인덱스의 선택도, 클러스터링 정도 등이 포함됩니다. 이러한 통계는 Oracle의 DBMS_STATS 패키지를 사용하여 수집하고 유지할 수 있습니다. CBO는 이러한 통계를 사용하여 쿼리를 수행하는 데 필요한 비용을 계산합니다. 이 때, 비용은 디스크 I/O, CPU 사용량, 네트워크 트래픽 등 여러 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bQrQfg/btsgbJQHryi/KYKG4bNk37rhlgWQlBvn2k/img.png)
서브쿼리는 다른 SQL 쿼리 내에서 사용되는 쿼리를 말합니다. 서브쿼리는 데이터를 필터링하거나, 복잡한 연산을 수행하거나, 다른 테이블과의 관계를 표현하는 데 사용됩니다. 서브쿼리는 크게 세 가지 종류로 분류할 수 있습니다: 스칼라 서브쿼리(Scalar Subquery), 코릴레이티드 서브쿼리(Correlated Subquery), 그리고 비코릴레이티드 서브쿼리(Uncorrelated Subquery). 1. 스칼라 서브쿼리 (Scalar Subquery): 이 서브쿼리는 단일 값을 반환합니다. 일반적으로 SELECT, WHERE, 또는 HAVING 절에서 사용됩니다. 예시: SELECT EmployeeName FROM Employees WHERE EmployeeID = (SELECT ManagerID ..