목록전체 글 (153)
something new !
클라우드 오라클 DB 환경에서가장 기본적인 ASM 디스크 그룹, 리두 로그, 아카이브 로그의 개념과 관계를 정리합니다. 1. ASM 디스크 그룹 (Disk Group) : 파일들이 담기는 커다란 바구니ASM(Automatic Storage Management)은 오라클이 복잡한 물리 디스크(LUN, EBS 등)를 직접 관리하여성능과 안정성을 높여주는 볼륨 관리 시스템이다. 여러 개의 디스크를 하나로 묶은 최상위 저장 공간 단위가 바로 디스크 그룹이다. 개념 : 오라클 파일들이 저장되는 물리적/논리적 디스크 영역 대표적인 구성:+DATA 그룹 : 실제 데이터베이스 파일(Datafile), 테이블 스페이스, 컨트롤 파일 등이 저장되는 메인 저장소+RECO 그룹 (FRA : Fast Recovery Area..
시퀀스란,중복되지 않는 유일한 숫자를 자동으로 생성해 주는 객체로주로 기본키 (Primary Key) 값을 생성할 때 가장 많이 사용된다. 주요 용도- 고유 번호 생성 : 회원번호, 주문번호, 게시글 번호처럼 중복되면 안되는 번호를 안전하게 생성- 자동화 : 개발자가 직접 MAX(ID) + 1 같은 쿼리를 짜지 않아도, 시퀀스가 알아서 다음 숫자를 관리- 성능 최적화 : 여러 사용자가 동시에 데이터를 입력해도 번호가 겹치지 않도록 오라클 내부적으로 빠르게 처리 시퀀스 기본 구조시퀀스 생성 시, 옵션 설정이 가능하다. - START WITH : 시퀀스가 시작할 첫 번째 숫자- INCREMENT BY : 숫자가 한 번에 얼마씩 증가할지 결정 (기본값 : 1)- MAXVALUE / MINVALUE : 생성할..
오라클은 Instance 하나에 하나의 Database가 있고, 그 내부를 Tablespace로 쪼개서 관리하는 개념이라면,MSSQL은 하나의 Instance 안에 여러 개의 독립적인 Database가 존재하는 구조이다. MSSQL에는 시스템의 운영과 관리를 위해 기본적으로 생성되는 시스템 데이터베이스들이 있다.이 데이터베이스들은 SQL Server 인스턴스가 정상 구동되고 데이터를 관리하는데 필수적인 역할을 한다. ... 1. master **SQL Server의 심장 같은 역할로, 인스턴스 전체의 구성 정보 및 메타데이터를 담고 있다.역할 : 로그인 계정, 연결된 서버 정보, 시스템 구성 설정, 다른 모든 데이터베이스의 파일 위치 정보 저장중요성 : master db가 손상되거나 사용할 수 없게 ..
오라클 DB를 운영하다 보면,PK(Primary Key) 구조를 변경하거나 데이터 타입 수정을 위해 PK를 삭제해야 할 때가 있다.삭제하려는 PK를 참고하는 FK가 있다면 단순 삭제가 불가하다. FK가 엮여 있는 PK를 삭제하고 재생성하는 흐름을 정리해보자. ... 0. 삭제 전, PK와 연결된 FK 확인PK 삭제 후 다시 생성하면, FK도 복구해야 하므로, 삭제 전에 어떤 것들이 연결되어 있는지 확인이 필요하다.-- 특정 테이블의 PK를 참조했던 FK 목록 찾기SELECT A.OWNER AS CHILD_OWNER, A.TABLE_NAME AS CHILD_TABLE, A.CONSTRAINT_NAME AS FK_NAME, A.STATUSFROM DBA_CONSTRAIN..
1. 파티션 (Partition) 이란?파티션은 논리적으로는 하나의 테이블이지만, 물리적으로는 여러 개의 분리된 영역에 저장되는 방식이다.ex) 1억 건의 데이터가 담긴 '매출' 테이블을 '연도별'로 나누어 저장하는 식 주요 파티셔닝 방식- Range Partitioning (범위) : 날짜, 숫자 범위를 기준으로 나눈다. (ex. 1월, 2월 ...)- List Partitioning (목록) : 특정 값의 목록을 기준으로 나눈다. (ex. 서울, 부산, 대구 ...)- Hash Partitioning (해시) : 해시 함수를 이용해 데이터를 균등하게 나눈다. (키 값이 뚜렷하지 않을 때 사용) 2. 서브파티션(Subpartition) 이란?서브파티션은 "복합 파티셔닝(Composite Partit..
https://www.acmicpc.net/problem/1749 문제 요약N*M 행렬의 각 칸에 점수를 하나씩 적고그 행렬의 부분 행렬을 그려 그 안에 적힌 정수의 합을 구했을 때,정수 합이 최대가 되는 부분 행렬 구하기 ➮ 최대 합을 출력 코드import sysn, m = map(int, sys.stdin.readline().split())A = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]# 2차원 누적합 배열 초기화S = [[0] * (m+1) for _ in range(n+1)]for i in range(1, n+1): for j in range(1, m+1): # A 행렬은 정사이즈 행렬로 만들었기 때문에 ..
https://www.acmicpc.net/problem/2467 코드import sysinput = sys.stdin.readlinen = int(input())liquids = list(map(int, input().split()))# 포인터 초기 설정left_idx = 0right_idx = n-1ans = abs(liquids[left_idx] + liquids[right_idx])ans_left = left_idxans_right = right_idxwhile left_idx 코드 설명입력으로 주어지는 용액이 정렬되어 있고,특정 수를 만족하는 두 개의 수를 구해야 함으로 투 포인터를 사용하면 유용하다. 두 개의 포인터를 배열의 양 끝에서 시작시키고, 초기 정답을 abs 변수에 설정한다. 포인터..
https://school.programmers.co.kr/learn/courses/30/lessons/70130?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 요약스타 수열 x의 조건- x의 길이가 2 이상의 짝수- 2개 단위로 나눈 집합들의 교집합 원소가 1개 이상- 2개 단위로 나눈 집합들은 서로 다른 수⇒ a의 모든 부분 수열 중에서 가장 길이가 긴 스타 수열의 길이를 반환⇒ 없다면 0 반환[스타 수열을 만족하려면]1. 특정 원소를 최대한 많이 포함해야 함2. 해당 원소와 함께 나올 수 있는 다른 원소를 찾아 짝을 이루어야 함 코드 설명from collectio..
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약n개의 음이 아닌 정수들 순서 바꾸지 말고 적절히 + - 하여 타겟 넘버 만들기만들 수 있는 방법의 수 구하기 코드 설명cnt = 0def dfs(numbers, target, current, depth): global cnt if depth == len(numbers): if current == target: cnt += 1 return dfs(numbers, tar..
https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 요약항공권 정보가 담긴 배열방문하는 공항 경로를 배열에 담아 반환항상 "ICN"에서 출발주어진 항공권 모두 사용가능한 경로가 2개 이상인 경우, 알파벳 순서가 앞서는 경로 반환 코드 설명answer = [] def solution(tickets): global answer visited = [0] * len(tickets) dfs("ICN", ["ICN"], tick..