구조적 질의어 (SQL, Structured Query Language) ( 2 )
·
DB
데이터 정의어 ( Data Definition Language, DDL)- 데이터 정의어란?DB를 정의하는 언어, 데이터를 생성, 수정, 삭제등의 데이터 전체 골격을 결정하는 역할을 한다. INDEX, VIEW, SCHEMA, DOMAIN, TABLE을 정의하거나, 변경 또는 삭제할 때 쓰이는 언어데이터 베이스 관리자나 설계자가 사용한다.- 구문CREATE : DB & Table 생성DROP : DB & Table 삭제ALTER : 테이블 수정TRUNCAT : 테이블 초기화RENAME : 테이블 이름 변경☆ RDB에서 말하는 데이터와 레코드...DB라는 전체 저장소에 테이블이라는 형식의 데이터를 저장하고, 테이블에는 각각의 값에 해당하는 레코드를 행으로 저장한다. 데이터 조작어 (Data Manipula..
구조적 질의어 (SQL, Structured Query Language) ( 1 )
·
DB
구조적 질의어란?관계형 데이터베이스에 정보를 저장하고 처리하기 위한 질의 언어(Query Language)이다. ☆ 그렇다면 질의 언어(Query Language)와 프로그래밍 언어(Programming Language) 는 뭐가 다른 걸까? ☆크게 나누면 Non Programming Language 에 질의 언어(Qeury Langauge)가 속하고 프로그래밍 언어가 있는 것이다!  질의 언어(Query Language)프로그래밍 언어(Programming Language)목적데이터 베이스와 상호작용 하기 위해서애플리케이션을 개발하기 위해서특징DB에서 정보를 질의 & 관리 용이다양하고 복잡한 로직을 구현하기 용이주 사용 예시SQL, CQLJava, Python, C++  SQL의 역할데이터 베이스에 정..
MySQL - InnoDB
·
DB
1. InnoDB  - MySQL의 Storage Engine 중 하나로, 트랜잭션 지원과 높은 안정성으로 주로 사용되는 엔진 중 하나이다.  - 대용량의 데이터를 다루고, 다른 여러가지 기능을 제공해준다. 2. Architecture  2-1.  In-Memory Structures1) Buffer Pool버퍼풀은 테이블 및 인덱스 데이터를 캐싱하는 메인 메모리 영역이다.쓰기 버퍼링 기능을 제공한다. 즉, 쿼리가 실행됐지만 아직 commit되지 않은 데이터들은 Buffer pool에서 들고 있게 된다는 것이다.쿼리가 실행됐는데, 해당하는 데이터들이 Buffer Pool에 없다면, 디스크에서 읽기/쓰기해서 가져오게 된다. 2) Change Buffer보조 인덱스 (Secondary Index)의 변화를 ..
MySQL Server
·
DB
1. MySQL Server  - 오픈소스 관계형 RDBMS 중 하나로 전세계에서 가장 많이 쓰이는 DBMS 중 하나이다.  - MySQL Server 는 크게 MySQL Engine과 Storage Engine으로 구성되어 있다.   - 여기서 중요한 점은 하나의 쿼리는 여러개의 하위 쿼리로 나뉘는데 이 하위 쿼리가 어느 영역에서 처리되는지 알아야한다.    - ArchitectureMySQL Server는 모든 언어에서 MySQL 서버로 쿼리를 사용할 수 있도록 지원한다. (SQL Interface)Storage Engine 의 경우 여러개를 둘 수 있지만, MySQL Engine은 오직 하나만 사용한다.Storage Engine을 통해 저장되는 실질적인 저장장치는 운영체제 하드웨어의 디스크이다.2...
RDBMS (Relationa DataBase Management System)
·
DB
1. RDBMS관계형 데이터 베이스 관리 시스템으로, 모든 데이터를 2차원 테이블의 형태로 표현하는 데이터베이스이다.RDBMS는 테이블이라는 최소 단위로 구성되며, 테이블은 하나 이상의 행과 열로 이루어져 있다.대표적으로 MySQL, MariaDB 등이 있다. 2. RDBMS 테이블 용어 정의릴레이션 : RDB에서 정보를 구분하여 저장하는 기본 단위이다. => 테이블속성 : 저장하고 싶은 객체의 항목들차수 : 속성의 수튜플 : 레코드이며, 테이블의 각 행들을 튜플이라고 한다.카디널리티 : 튜플의 수를 의미한다.스키마 : 데이터의 구조나 제약조건을 정의한 것인스턴스 : 데이터 베이스에 올라간 실데이터를 인스턴스라고 한다. 3. RDBMS의 종류MySQL, MaraiDB, Oracle...등등이 있다.
데이터 베이스 키(key)
·
DB
키 (key)후보키 (Candidate Key)릴레이션을 구성하는 속성 중에 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미한다.릴레이션은 반드시 하나 이상의 후보키를 가져야 한다.릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 충족시켜야 한다.기본키 (Primary Key)후보키 중 선택한 주 키특정 튜플을 구별할 수 있는 유일한 키Null 값을 가질 수 없다(개체 무결성)동일한 값이 중복되어 저장될 수 없다.정수를 지향하고 유효 아이디(String 같은 문자열)을 지양한다.유효 아이디 사용 시 별도의 정렬을 위한 테이블이 필요하다.크기가 커질 가능성이 커서 불필요한 메모리 사용이 늘어난다.해결방안으로 TSID**, snow flake** 등이 있지만, 그래도 정수 사용을 권장한다. 굳이..
얕은 복사 & 깊은 복사
·
java
1. 얕은 복사 & 깊은 복사란?얕은 복사 (Shallow copy) : 주소 값을 복사하는 행위깊은 복사 (Deep copy) : 해당 주소의 실제 메모리에 저장된 값을 복사하는 행위int[] a = {1,2,3}// 얕은 복사int[] b = a; // 깊은 복사int[] c = a.clone(); orint[] c = new int[3];for(int i = 0; i  2. clone()시 주의할 점clone()은 객체의 주소의 실제 값들을 저장해주는 메서드이나, 메모리안에 주소가 저장된 경우 깊은 복사가 안 된다. 아래 비교 코드를 보면 알 수 있다.public class Main { public static void main(String[] args) { int[][] a = ..
3단계 데이터 베이스 구조
·
DB
1. 인스턴스와 스키마스키마 - 데이터 베이스에 저장되는 데이터의 구조와 제약조건을 정의한 것스키마 : 데이터 베이스 : 테이블 = 평면도 : 집 : 방인스턴스(레코드) - 스키마에 따라 실제 데이터베이스에 저장된 값 2. 3단계 데이터 베이스 구조데이터 베이스를 보다 쉽게 이해하고, 이용할 수 있도록 하나의 데이터 베이스를 관점에 따라 세 단계로 나눈 것을 말한다.각 단계별로 다른 추상화(abstraction) 제공단계외부 단계 (외부 스키마 = 서브 스키마) - 개별 사용자 관점데이터 베이스에 여러 외부 스키마가 존재할 수 있다.외부 단계에서 사용자에게 필요한 데이터 베이스를 정의한 것사용자가 생각하는 DB의 모습, 논리적 구조가 다를 수 있다.개념 단계 (개념 스키마 = 스키마) - 조직의 전체적인..