뷰 : 가상의 테이블 뷰 가상의 테이블 테이블에서 필요로 하는 부분만 선택하여 만들어 놓은 데이터의 집합 뷰의 특징 데이터 가공을 통해 마치 테이블처럼 내용을 보여 줄 수 있음 자주 쓰거나 복잡한 SQL 문의 결과를 미리 만들어 놓을 수 있음 여러 테이블을 조인하여 하나의 뷰로 생성할 수 있음 사용자별로 접근 권...
DDL이란? DDL Data Definition Language 데이터 정의어 테이블과 관련 열을 조작(생성, 변경, 삭제)하기 위한 언어 따로 커밋하지 않아도 데이터베이스에 즉각 반영되며 데이터 사전에 기록됨 CREATE : 테이블 생성하기 CREATE 새로운 테이블을 생성할 때 사용 productid(number 타입),...
데이터 무결성과 제약 조건 데이터 무결성 데이터베이스에 저장된 데이터 값과 사용자가 의도한 데이터 값은 일치해야 함 데이터는 정확성, 유효성, 일관성, 신뢰성이 지켜져야 함 → 이를 위해 데이터를 처리할 때마다 검사하여 무결성을 유지하는 것을 데이터 무결성이라 함 데이터 무결성의 종류 | 유형 | 설명 | | --- ...
DML이란? DML Data Manipulation Language 데이터 조작어 트랜잭션을 다루는 명령어 DML의 종류 | 명령어 | 설명 | | --- | --- | | INSERT | 테이블에 새로운 행을 삽입한다. | | UPDATE | 테이블에 있는 행의 내용을 갱신한...
서브쿼리란? 서브쿼리 SELECT 문 안에 다시 SELECT 문이 기술된 형태의 쿼리 서브쿼리의 결과는 메인 쿼리의 조건으로 사용됨 서브쿼리의 종류 | 서브쿼리 종류 | 설명 | | --- | --- | | 단일 행 서브쿼리 | 하나의 행을 검색하는 서브쿼리 | | 다중 행 서브쿼리 | 하나 이상의 행을 검색하...
조인이란 조인(join) 관계형 데이터베이스의 테이블 안에 있는 행들을 논리에 따라 연결할 수 있도록 하는 기법 조인 기법의 종류 | 조인 기법 | 설명 | | --- | --- | | 곱집합 (cartesian product) | 가능한 모든 행을 조인 | | 동등 조인 (equi ...
키와 제약 조건 : 개체 속성 표기법 ERD Entity Relationship Diagram 개체(테이블)간의 관계를 이해하기 쉽게 그림으로 표현한 것 테이블의 상세 구조 행 employee에 대한 모든 데이터를 나타내는 단일 행, employee_id 값에 의해 유일하게 식별됨 기본키 employeeid 열은...
함수란 함수 미리 정의된 기능을 통해 데이터를 좀 더 편리하게 조작할 수 있도록 도와줌 함수를 사용하는 목적 데이터 값을 계산하거나 조작함 (단일 행 함수 : 한 번에 하나의 데이터를 처리하는 함수) 행의 그룹에 대해 계산하거나 요약함 (그룹함수 : 여러 건의 데이터를 동시에 처리하여 해당 그룹에 해당하는...
[SELECT문의 기본 문법] SELECT 문 데이터베이스에 있는 데이터 조회 시 사용 단지 선택된 데이터를 화면에 출력할 뿐 데이터의 값이 데이터베이스에 반영(삽입, 갱신, 삭제)되지는 않음 employees 테이블의 모든 정보 출력하기 employees 테이블에서 employeeid, firstname, last_name을 출력하기 ...
이렇게 하면 바로 터짐 vector는 공간이 부족해지면 더 큰 공간을 만들고 데이터를 옮김 멀티 스레드 환경은 다른 스레드를 기다려주지 않음 (이전에 Add, Sub에서 확인한 것 처럼) 그러니까 t1 쓰레드에서 공간이 부족해서 기존 공간을 줄이고 공간을 늘려야지 할 때 t2도 기존 공간을 지우고 늘려야지 라고 한다면 같은 공간을 두 번 지우게 됨 ...
멀티 스레드 환경에서 공유 데이터를 사용할 때 문제점 멀티 스레드 환경에서 stack은 각기 자신의 영역을 가짐 그러나 힙이나 데이터 영역 같은 경우에는 공유함 (현재 sum은 전역이므로 데이터 영역에 있음 → 공유되는 데이터임) 디스어셈블리로 보면 아래와 같이 sum 함수 내부의 sum++은 세 가지 과정을 거침 어셈블리어는 오른쪽부터 읽으면 됨 s...
에러 발생 -> main 함수가 스레드 보다 먼저 끝나는 경우가 있음 이럴 때는 join()를 사용해서 해당 스레드가 끝날 때 까지 main 스레드가 기다리도록 만들어야 함 그런데 데몬 프로세스와 같이 스레드 객체에서 실제 스레드가 분리된 경우도 있으므로 아래와 같이 주로 사용함 HelloThread() 내에 중단점을 걸고 확인 해 보면 아래와 같이 ...
[이제는 데이터의 시대] 데이터를 수집하는 방법 관련 부서에 요청한다 나와 IT 담당자 간 생각의 괴리가 생기면 원하는 데이터를 얻을 때 까지 계속해서 요청해야 함 추가적인 가공을 원할 때도 계속 요청해야 함 직접 데이터베이스를 조작한다 데이터베이스를 마음대로 조작하여 결과물을 추출할 수 있음 ...
[HTTP(Hypertext Transfer Protocol)의 개요] [웹 서버의 이해] 웹 서버란 HTTP를 기반으로 하여 웹 페이지가 들어 있는 파일을 클라이언트에게 전송해 주는 프로그램 HTTP란 Hypertext Transfer Protocol의 약자(Hypertext란 사용자의 선택에 따라 이동이 가능한 조직화된 정보) HTTP는 어플리케...
쓰레드는 리눅스보다는 윈도우즈에서 보다 친숙한 개념임 그러나 웹이 발전하면서 유닉스 계열의 환경에서도 쓰레드의 중요성이 부각됨 [프로세스와 쓰레드] 이전에 프로세스를 생성하면 프로세스마다 완전히 독룁된 메모리 공간을 유지하기 때문에 프로세스간 통신을 위해 select 함수를 기반으로 하는 멀티플렉싱 서버의 구현 예제를 공부했었음 그러나 멀티 프로세스 서...
fopen 함수를 호출해서 파일을 열고 나면, 파일로부터 데이터를 송/수신할 수 있게 됨 fopen 함수를 호출해서 파일을 여는 경우 스트림이 생성되었다고 표현함 스트림이란 “데이터가 이동하는 흐름”을 의미 (일종의 다리) 파일 포인터를 스트림이라고 표현하는 것은 아니고 파일 포인터 생성 시 데이터 입/출력을 위한 내부적인 상황(다리가 놓여진 상황)을 의미...
[표준 입출력 함수의 장점] (1) 이식성이 좋아진다 시스템 함수들은 운영체제에 종속적이기 때문에 다른 시스템에서 프로그램을 실행시켜야 할 때 문제가 될 수도 있음 이식성을 높이기 위해서는 어떻게 해야할까? 모든 시스템이 지원해 주는 표준화된 함수들을 사용하면 됨(ANSI표준 C의 입/출력 함수) (2) 효율성을 높일 수 있다. 소켓을 생성하게 되면...
[멀티캐스트] 멀티캐스트 방식은 UDP를 기반으로 하는 전송 방식임 둘 이상의 호스트에게 데이터를 전송하고자 하는 경우에는 데이터를 두 번 전송해야 함 그러나 멀티캐스트 방식에서는 데이터 전송의 목적지가 하나의 호스트가 아니라 멀티캐스트 그룹에 속해 있는 모든 호스트들이 목적지가 됨 → 단 한번의 데이터 전송으로 여러 클라이언트들에게 데이터를 전달할 수 ...
[recv & send 입/출력 함수] recv와 send는 데이터 입/출력 시에 방법에 있어서 옵션을 줄 수 있도록 인자를 하나 더 받는 다는 것을 제외하면 read, write와 동일한 기능을 하는 함수임 [flags에 들어갈 수 있는 옵션의 종류와 그 의미] | flags | Description | recv | send | | --- | ---...
[I/O 멀티플렉싱 기반의 서버] 프로세스의 생성은 상당히 많은 대가를 지불해야 하는 연산 과정을 거침 그만큼 생성 후에도 시스템의 자원을 많이 차지하게 됨 또한 모든 프로세스들은 서로 독립적인 메모리 공간을 할당 받아서 사용하기 때문에 프로세스간 통신을 하기 위해서는 다소 복잡한 방법을 선택할 수 밖에 없었음 (IPC) 하나의 프로세스로도 여러 클라이언...