전체 글
데이터 테이블의 종류 및 특성
1. 원장성 테이블 (Master Table)구성 형태업무의 핵심 개체(Entity)들로서 주로 업무성격의 주체(Subject, Source)에 대한 정보를 담고 있으며, 부속된 많은 자식 테이블(child table)들을 거느리고 있다, 또한 이력 테이블(History table)도 부속되어 있기에 dw 시스템을 구축할 때도 이와 같은 원장성 테이블은 아주 중요한 핵심 테이블(Key table) 역할을 하게 된다.여기서 주체(Source)란 행위(Behavior)의 주체를 말한다. 쉽게 예를 들어 설명하면 모든 업무의 프로세스(process)는 주체와 행위, 그리고 대상(Target, Object)로 집약될 수 있다. 즉, "홍길동은 카드로 멋진 컴퓨터를 구입했다"라는 내용을 업무 프로세스 관점에서 바..
MAC 주소 개념 정리 / 스위치
스위치란?중요한 네트워크 장비로써 라우터와 쌍벽을 이루는 것이 바로 스위치다. 스위치의 역할은 주로 두 가지다PC나 서버 등을 네트워크에 연결시킨다.같은 네트워크 내부의 LAN 포트 사이에서 데이터 전송을 수행한다.스위치에는 LAN 포트가 여러 개 달려있다. 가정용 스위치에는 대개 8개 정도 달려 있지만, 기업용 스위치 중에는 몇백 개나 되는 LAN 포트를 갖춘 제품도 있다.컴퓨터를 네트워크에 연결하기 위해선 컴퓨터와 스위치의 LAN 포트를 서로 연결하면 된다. 이 때 스위치가 여러 대의 컴퓨터로부터 LAN 케이블을 모으는 것처럼 보이기 때문에 집선 장치라고 불리기도 한다.스위치에 연결된 컴퓨터들은 기본적으로 같은 네트워크에 연결되고 스위치를 여러 대 사용하는 경우에도 같은 네트워크로 취급된다.스위치는 ..
스위치 라우터의 차이
스위치목적지로 출발한 데이터를 중간에 적합한 경로로 스위칭해주는 역할을 하는것이 스위치이고 스위치는 데이터링크 계층에 속한다. 스위치는 데이터링크 계층에 속해 있으므로 MAC주소 기반으로 동작한다. 라우터라우터 또한 목적지로 가는 적합한 경로를 찾아주는 라우팅 기능을 한다. 라우터는 IP주소를 기반으로 작동하여 네트워크 계층에 속해있다. 둘의 차이가장 대표적인 차이는 계층의 차이이다. 라우터는 네트워크계층에서 IP주소를 기반으로 동작하며 스위치는 MAC주소를 기반으로 데이터링크 계층에서 동작한다.스위치는 브로드캐스트 도메인을 구분할 수 없는 반면 라우터는 브로드캐스트 도메인을 구분하여 서로 다른 네트워크 대역을 구분한다.스위치는 불명확한 목적지를 가진 데이터를 처리할 때 모든 포트로 데이터를 퍼뜨리는 브..
[SQL] count 함수는 null을 포함할까?
count(컬럼명) null 값을 제외하고 countcount(*) null 값을 포함하여 count 빈 문자열은 모두 포함빈 문자열을 count에 포함하지 않으려면 빈 문자열을 null로 바꾼 후 count 실행 count(distinct(컬럼명)) null을 제외한 중복되지 않는 값만 count [SQL] sql에서 count()에 null.. : 네이버블로그 (naver.com)
[SQL] foreign key(외래키) 추가, 삭제, 확인 방법
추가alter table [추가할테이블명] add constraint [제약조건명] foreign key(컬럼명)references [부모테이블명] (PK컬럼명) [ON DELETE CASCADE / ON UPDATE CASECADE]; ON DELETE CASCADE외래 키에서 참조하는 키가 포함된 행을 삭제하려고 하면 해당 외래 키가 포함되어 있는 모든 행도 삭제 ON UPDATE CASCADE외래 키에서 참조하는 키 값이 포함된 행에서 키 값을 업데이트 하면 해당 외래 키를 구성하는 모든 값도 키에 지정된 새 값으로 업데이트 되도록 지정삭제alter table [테이블명] drop foreign key [제약조건명];확인테이블 기준 확인select * from information_schema.ta..
[SQL] 데이터 타입 CHAR, VARCHAR
MySQL 4.1 이후 버전부터는 CHAR(n), VARCHAR(n)에서 n은 바이트가 아니라 글자 수를 의미한다 또한 4글자 이하의 VARCHAR는 CHAR로 자동으로 변환된다. CHAR는 길이가 고정된 문자열 타입이다. 최대 길이 255지정된 크기만큼 데이터가 들어오지 않는 경우 남은 공간을 공백(trailing space)으로 채워 넣는다.예를 들어서 CHAR(5)로 정의된 컬럼에 'ab'라는 2자리 문자열을 넣게 되면 남은 3자리는 'ab ' 다음과 같이 공백으로 채워진다, 결국 데이터의 크기는 항상 처음 선언된 5 바이트가 소요되고 데이터의 낭비가 발생한다. VARCHAR는 가변의 문자열 타입이다. 최대 길이 65,535Variable Character Field라는 이름의 의미처럼 가변의..
[SQL] 인덱스 힌트 / 옵티마이저 힌트 사용 방법 (주석, 튜닝)
기본적으로 쿼리를 실행하면 DBMS 내의 옵티마이저가 여러개의 실행 계획을 만들고 그 안에서 제일 비용이 적게 소요되는 실행계획을 선택하여 실행이 되지만 옵티마이저를 믿지 못하거나 특정 방법으로 실행 계획을 하고 싶을 시에는 옵티마이저 힌트를 사용하면 된다. 기본적으로 사용법은 아래와 같다. OPTIMIZER_MODE 지정가능 값/* + ALL_ROWS */목적 : Best Throughput용도 : 전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-based 접근 방식으로 ALL_ROWS는 Full Table Scan을 선호하며 CBO (Cost Based Optimization)는 default로 ALL_ROWS를 선택한다. /*+ FIRST_ROWS */목적: Best Response..
[DB] 데이터 딕셔너리
개념데이터 딕셔너리는 데이터베이스의 가장 중요한 부분 중의 하나인 데이터베이스와 관련된 정보를 제공한다. 데이터 딕셔너리의 내용은 DDL 혹은 DML이 수행될 때 오라클 서버에 의해 변경된다. 소유자는 SYS이며 오라클 서버에 의해 유지되므로 사용자는 데이터 딕셔너리의 내용을 변경할 수 없다. 단지 일반 사용자는 SELECT 명령으로 데이터 딕셔너리의 내용을 조회만 할 수 있다. 데이터 딕셔너리는 기본 테이블과 딕셔녀리 뷰의 두 가지 형태로 제공한다. 기본 테이블은 데이터베이스에 관한 정보를 갖고 있는 테이블로서 오라클 서버만 기록할 수 있고 데이터가 은폐되어 있으므로 사용자가 직접 접근할 수 없다. 데이터 딕셔너리 뷰는 기본 테이블의 정보를 더 유용하게 보여주기 위해서 기본 테이블을 요약한 형태이다..
[Python] 아스키 코드 (Ascii Code) 사용하기
파이썬에서는 ord()와 chr() 함수를 통해 문자를 아스키코드로, 아스키코드를 문자로 변환할 수 있다. print(ord("A"))print(ord("B"))print(ord("C"))# 65# 66# 67print(chr(65))print(chr(66))print(chr(67))# A# B# C 각 문자에 대한 아스키코드를 모두 외울 필요는 없지만, 알파벳의 아스키코드는 대문자가 소문자보다 더 작다는 것과 알파벳의 순서에 따라 아스키코드의 숫자가 1씩 증가한다는 특징 정도는 알아둘 필요가 있다.바로 이 특징을 이용하면 특정 알파벳에서 N번째 후의 알파벳을 구할 수 있다.# A에서 두 번째 후의 숫자print(chr(ord("A") + 2))# C 이번엔 Z에서 1번째 후의 알파벳을 구하고자 한다.Z..
[Python] 포메팅 format
'%'를 사용한 포멧팅변수 타입에 따라서 %s, %d, %f 구분해서 써줘야 함 기본적으로 %s는 문자열, %d는 정수, %f는 실수를 받아온다. 아래 예제에서 %f는 하나의 변수를 그대로 받아온 것이 아니라, one_length와 E의 곱의 결과를 받아왔다. 즉 포메팅을 하면서 연산의 결과를 받아올 수도 있다. 그리고 %f와 %.2f의 차이는 %.2f는 실수를 받아올 때 소수점 둘째 자리까지만 표현되도록 하라는 의미다 즉 %.3f라고 되어있으면 소수점 셋째자리까지 표현된다.something = '볼펜'EA = 2one_length = 5.343scale = 'cm'print('%s %d개의 길이는 %f%s 입니다.' % (something, EA, one_length*EA, scale))#실수 소수점 ..