분류 전체보기

1. 정규화의 개념 정규화의 개념 정규화의 개념 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다 조금 더 이론적으로 접근해 보면 함수적 종속성을 이용해서 연관성 있는 속성들을 분류하고, 각 릴레이션들에서 이상현상이 생기지 않도록 하는 과정을 말한다. 정규화의 목적 불필요한 데이터를 제거, 데이터 중복을 최소화 데이터베이스 구조 확장 시 재 디자인을 최소화 무결성 제약조건의 시행을 간단하게 하기 위해 이상 (Anomaly) 현상 을 방지하기 위해 테이블 구성을 논리적이고 직관적으로 만들기 위해 이상 (Anomaly) 현상 삽입 이상 (insertion anomaly) : 데이터를 저장할 때 원하지 않는 정보가 함께 삽입되는 경우 갱신 이상 (update ano..
1. 데이터베이스 설계 데이터베이스 설계 데이터베이스 설계란? 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정 이미 구축된 데이터베이스는 구조를 변경하기 어려우므로 체계적인 설계 과정을 통해 데이터베이스가 올바르게 구축되어야 함 대표적인 설계 방법 E-R 모델과 Relation 변환 규칙을 이용한 설계 정규화를 이용한 설계 데이터베이스 설계 단계 요구 사항 분석 실제 세계에서 어떤 요구사항의 시스템을 구출할 것인지 대한 데이터베이스의 용도 파악 요구 사항에 대해 어떤 데이터들이 필요한지, 어떤 기능들이 필요한지 분석 결과물 : 요구 사항 명세서 개념적 설계 (Conceptual Model) 요구 사항 분석 결과물을 개념적 데이터 모델을 이용해 개념적 구조로 표현 요구 사항 명세서를 E-..
1. View에 대한 개념 및 활용 Views View의 목적은? 어떤 경우에 모든 사용자가 전체 논리적 모델 (데이터베이스에 저장된 모든 실제 테이블)을 보는 건 문제가 될 수 있음 필요한 데이터만 특정 사용자들에게 유출할 필요가 있을 때 사용 employ 테이블에서 아이디, 이름, 부서 조회 가능하게 하지만 salary 정보를 숨기고 싶을 때 질의문 작성을 쉽게 만들어 준다. Group by나 aggregation function 등을 미리 정의 데이터 종속성 제거 응용프로그램은 뷰를 통해 접근함으로써 테이블 스키마 변화에 신경 쓸 필요가 없다. View 정의 CREATE VIEW [() as 다른 view을 이용한 query로 view 생성 가능 Column list가 생략된 경우 query문의 결..
1. SQL 소개 SEQUEL (Structured English QUEry Language) 1974년 IBM San Jose Research Lab에서 연구용 DBMS 인 SYSTEM R 를 위한 언어로 개발된 언어 연산자로 하나 또는 두 개의 릴레이션 (Unary and binary operations) Paper : https://researcher.watson.ibm.com/researcher/files/us-dchamber/sequel-1974.pdf SQL (Structured Query Language) : SEQUEL에서 이름이 바뀜 ANSI/ISO 가 표준 standard SQL 를 지정 SQL-86 : 1986년도 만들어진 첫번째 표준 SQL, SQL1이라고도 불림 SQL-92 : S..
관계형 데이터 모델 1. 데이터 모델링 데이터 모델링 (data modeling) 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정 데이터베이스 설계의 핵심 과정 데이터 모델링 3단계 개념적 데이터 모델링 현실세계를 추상화하여 중요 데이터를 개념 세계로 추출해 가는 과정 결과물로 개념적 데이터 모델 (객체 – 관계 (E-R) 모델) 논리적 데이터 모델링 개념 세계의 데이터를 데이터베이스가 저장할 구조로 변환하는 과정 결과물로 관계 데이터 모델 물리적 데이터 모델링 논리 데이터 모델이 실제 데이터베이스 저장소에 저장되는 저장 구조 (테이블, 컬럼)로 변경 데이터 모델링 예제 2. 관계형 데이터 모델 관계 데이터 모델 개체에 대한 데이터를 저장하는 논리적 구조 – 릴레이션 (2차원의 테..
제 3장 C 프로그래밍 환경 3.1 컴파일러 gcc 컴파일러 gcc(GNU cc) 컴파일러 / 상업용 C 컴파일러(cc) $ gcc [-옵션] 파일 / \$cc [-옵션] 파일 GNU(GNU is Not Unix) 프로젝트의 freeware 컴파일러. 본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 2.9 버전에 이르러 C뿐만이 아니라 Objective C, Pascal, Ada와 같은 언어도 지원. GNU Compiler Collection으로 개명 컴파일 $ gcc long.c $ a.out //실행 파일 생성 -c 옵션 $ gcc - c long.c //object file 생성 -o 옵션 $ gcc -o long long.o //실행 파일 이름 지정 혹은 $ gcc..
2.0 유닉스 기초 Logging in login Unix는 multi-user system이다. 그래서, "login name + password"로 시스템에 로그인을 한다. /etc/passwd라는 파일에 다음과 같은 형식으로 정보(entry)를 저장한다. login name:password:UID:GID:comment:home directory:shell program Shell(prompt) Unix는 기본적으로 command line interface를 사용한다. command line interpreter라고도 함. 사용자의 명령을 읽어들여 실행하는 명령어 해석기가 필요하다.(terminal or shell script) 로그인 시 아래와 같은 창이 뜬다. . (current directory..
Unix/Linux 학습 목표 및 내용 학습 목표 유닉스/리눅스 시스템의 체계적 이해 시스템 프로그래밍 능력 향상 학습 내용 리눅스 시스템 프로그래밍 시스템 호출을 이용한 C 프로그래밍 주요 프로그래밍 주제 파일 프로세스 메모리 프로세스 사이의 통신(IPC) System Programming 컴퓨터의 정의 프로그램(명령어들의 리스트)에 따라 데이터를 처리하는 기계 계산기: 특수 목적 컴퓨터(정해진 기능만을 수행, 기능 변경 불가능) 노트북, 데스크 탑: 범용 컴퓨터(프로그램이라는 개념 도입, 수행 기능 변경 가능) 프로그램 작업 지시서(instructions이 나열된 것) 컴퓨터에게 해야 할 작업의 내용을 알려주는 문서 A sequence of steps(instructions): 명령 단계의 순서 각 ..
Parallel Processors from Client to Cloud Introduction 여러개 processor에다가 나눠서 각각에서 실행시키도록 한다. 목표: 더 높은 성능을 얻기 위해 여러 컴퓨터를 연결하는 것 Multiprocessors 여러개 core에서 골고루 task를 실행 Scalability, availability, power efficiency Task-level (process-level) parallelism 독립적인 작업에 대한 높은 throughput Parallel processing program 여러 프로세서에서 실행되는 단일 프로그램 Multicore microprocessors Chips with multiple processors (cores) Hardware..
Interrupts CPU가 있으면 CPU가 직접 check 즉, polling하지 않고 IO 자체가 준비가 되면 IO가 interrupt를 걸어서 준비가 됐음을 알린다. priority를 줄 수도 있음(우선순위를 먼저 처리) 장치가 준비됐거나 error가 발생했을 때, Controller는 CPU에게 interrupt를 건다. Interrupt는 exception과 같은 것. 그러나 명령 실행에 동기화되지 않음 instruction 사이에 handler를 호출할 수 있다 Cause information often identifies the interrupting device 이유 정보가 종종 interrupting device를 식별 Priority interrupts 더 긴급한 주의가 필요한 장치는 ..
cdragon
'분류 전체보기' 카테고리의 글 목록 (5 Page)