[DB] 4. SQL SQL(Structured Query Language) -** RDB를 위한 표준 질의어, 비절차적 데이터 언어 유래 : IBM이 개발한 SEQUEL에서 유래, ANSI와 ISO에 의해 현재까지도 표준화 및 용어 통일. 방식 : 대화식 SQL : DBMS에 직접 접근해 질의를 작성 및 실행 삽입 SQL : 프로그래밍 언어로 작성된 응용 프로그램에 삽입 (MyBatis, Hibernate.. 등) SQL은 완전한 프로그래밍 언어가 아닌 data sublanguage로 분류 -> 데이터와 메타 데이터에 대해서만 생성하고 처리하는 문법을 가지고 있다. SQL은 클라이언트/서버 구조로 구성되어 있다. -> 분산형 구조로 클라이언트에서 질의(요청)를 하면 서버에서 그 질의를 받아 처리하고 응답을 돌려준다. SQL.. [DB] 3. 관계대수 이전.. 데이터 모델 = 데이터 구조, 연산, 제약조건 관계대수 : 관계형 DB에서 연산 담당 관계대수(relatinal algebra) : 릴레이션에서 원하는 결과를 얻기 위해 질의하는 방법을 기술한 언어 관계 데이터 연산 1. 관계대수(절차적) : 어떤 데이터를 찾기 위한 처리 절차를 명시, DBMS내 처리 언어로 사용 2. 관계해석(비절차적, 선언적) : 어떤 데이터를 찾는지 명시, SQL의 이론적 기반 * 카티전 프로덕트(X) : 데카르트 곱, 두 집합의 원소를 골라 순서쌍으로 나타낸다. 도메인(domain) : 카티전 프로덕트의 기초 집합(A, B)가 가질 수 있는 값의 범위 관계대수 순수 관계 연산자 : 관계 데이터 모델의 위해 고안 (셀렉트, 조인, 프로젝트, 개명, 디비전) - 셀렉트 : .. [DB] 2.2 키(key) key = 릴레이션에서 투플들을 유일하게 '구별하는' 속성 또는 속성들의 집합 primary key = 기본키로써, 테이블에 반드시 존재 그 밖에 candidate key, alternate key, super key, foreign key 존재 키의 특성 유일성 : 투플을 구별 -> 모든 투플은 서로 다른 키 값을 가져야 한다. 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성함 => 릴레이션에서는 투플의 중복을 허용하지 않는다 => 투플 간 구분을 위해, 키는 반드시 다른 값을 가진다. 키는 릴레이션 간의 관계를 맺는데도 사용된다. => foreign key의 역할 1. super key : 유일성을 만족하는 속성 또는 속성들의 집합 2. candidat key : 유일성과 최소성을 만족하는 속성 .. [DB] 2. 데이터 모델 DBMS의 역할 정보 시스템에서 파일시스템을 대체하여, 데이터의 중복을 방지하고, 독립성, 일관성, 무결성을 보장. 또한, 데이터 관리, 재난 복구, 동시성 제어 등의 기능을 갖는다. 데이터 모델링 : 현실 세계의 데이터를 -> 개념적 -> 논리적 모델링 단계를 거쳐 데이터베이스에 저장하는 구조로 표현하는 작업. 데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구 개념적 데이터 모델 : E-R(Entity-Relation, 개체-관계) 모델로 나타낸다. 논리적 데이터 모델 : 관계 데이터 모델 데이터 모델의 구성 1. 연산, ex) CRUD.. 2. 데이터 구조, 데이터가 저장되는 형태 3. 제약조건, 데이터 간의 만족해야할 조건 1. 개념적 데이터 모델 : 현실 세계의 '중요 데이터를 추출'하는 작.. [MySQL] 데이터베이스, DBMS 데이터 특성에 따른 분류 : 범주형 데이터(categorical data), 수치형 데이터(numerical data) 범주형 데이터 : 학년, 과목, 상품이름 등 연산이 불가능한 데이터. 질적 데이터라고도 한다. 순서가 없는 명목형(nominal)과 데이터 사이에 순서가 존재하는 순서형(ordinal) 데이터가 있다. 수치형 데이터 : 숫자로 표현되어, 계산이 가능한 데이터. 양적 데이터라고 한다. 셀 수 있는 이산(discrete), 셀 수 없고 측정이 가능한 연속(continuos) 데이터가 있다. 형태에 따른 분류 : 정형(structured), 반정형(semi-structured), 비정형(unstructured data) 데이터 정형 데이터 : 데이터의 형태(틀)이 정해져 있다. RDB의 테이.. [일상]뜻밖의 휴가 벌써 2주전 일요이었나. 새벽 코딩을 마치고 커밋을 올리고 자려고 하는 찰나, 들고있던 물병을 엎질렀다. 노트북은 침수됐고, 현장의 분위기는 침체됐다. 나 어떡하지. 이틀 후, 강남의 레노버 서비스 센터에 갔다. 찾아보니 레노버 정식 서비스센터는 강남밖에 없더라. 이틀 후 알려주겠다고 했다. 혼란스러운 상태로 본가로 돌아갔다. 마음이 싱숭생숭하다. 간만에 동네 서점에 갔다, 기다리던 연락을 받았다. 고치는 것보다 새로 사는게 더 싸단다. 눈물을 머금는다. 충격에 빠진 상태로, 새 노트북을 알아보기 시작한다. 여권도 새로 만들었는데, 이번 여행은 다 갔다. 새 노트북은 중고로 알아보기로 했다. 윈도우와 macos 사이에서 고민을 엄청했다. 며칠동안 당근을 둘러본 것 같다. 결국 맥북에어가 저렴하게 올라와 .. [일상] 최근 근황에 대해 협업을 위한 Git, GitHub 1강을 마지막으로 포스팅을 못 하고있다. 2학년 2학기. 복학하자마자 전공 4.5라는 보잘것없지만 기념비적인 성적을 올렸다. 방학을 맞이한 기념으로 자료구조와 알고리즘을 공부하고 있다. 모든 포스팅은 블로그가 아닌 GitHub TIL에 올리고있다. 자료구조를 빨리 끝내고 하고픈 것이 산더미같은데, 몸은 왜 따라주질 않는지 애석하기만 하다. 블로그 포스팅을 하고 싶은데, 막상 글로 정돈하는것이 부담스럽게 다가온다. 결론은 TIL과 블로그 포스팅, 둘 사이에서 아직 고민중이다. 올해들어 첫 포스팅이던가. 아무튼 23년, 나를 포함해 모두가 많이 발전하는, 그런 한 해가 되길 기원한다. + 아,, 알고리즘 스터디를 시작한지 2주차가 됐다. 2주전부터 백준을 풀기시작해 오늘 실.. Template 과 Generic 그리고 C++ STL //template MyStack::MyStack() { tos = -1; } 1. 단순 함수 오버로딩 #include using namespace std; void myswap(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } void myswap(double& a, double& b) { double tmp; tmp = a; a = b; b = tmp; } int main() { int a = 4, b = 5; myswap(a, b); cout 클래스 분리 시, #include 문의 위치 C++ 공부를 하다 문득 궁금해졌다. 클래스 분리가 없는 자바와는 다르게, C++에서는 클래스를 .h 헤더파일과 .cpp 소스파일로 나누어 구현한다. 좀 더 정확하게 말하면 클래스를 정의부와 구현부로 나누어 작성하는 것이다. 보통 소스파일은 헤더파일을 include하여 메소드를 구현하게 되는데, 이 떄 궁금한게 생겼다. 외부 클래스나 라이브러리를 써야하는 상황이라면, 어느 곳에서 include하는게 맞을까? .cpp 파일에 쓰면 당연히 상관이 없고, .h 파일에 써도 어차피 헤더파이을 include 하기 때문에 정상적으로 작동한다. 앞서 몇 시간동안 공부를 하다보니 머리가 둔해져서 이렇다 할 결론이 안 나오더라. 결국 궁금해서 찾아보았다. 그렇게, 2009년에 나와 같은 질문이 올라온 것을 발견한다. 그.. 이것이 자바다. 3~4 char 타입의 데이터를 연산할 때 char c1 ='A' + 1; char c2 = 'A'; //char c3 = c2 + 1;//컴파일 에러 System.out.println("c1: " + c1); System.out.println("c2: " + c2); //System.out.println("c3: " + c3); 1행은 아무런 문제가 없지만, 3행에서는 컴파일 에러가 생긴다. 이런 결과가 나타나는 이유는 자바의 리터럴 연산 방벙 때문이다. 자바에서는 리터럴 간의 연산은 타입 변환이 일어나지 않고 해당 타입으로 계산하기 때문에 1행에서는 아무런 문제가 발생하지 않는 것이다. ( 1행은 "char c1 = 66;" 이라는 평범한 초기화 식이 된다.) 반면에 3행에서는 리터럴 간의 연산이 아닌, c.. 콜백 메소드(Callback Method)는 뭘까. A callback function is a function passed into another function as an argument, which is then invoked inside the outer function to complete some kind of routine or action. Callback function - MDN Web Docs Glossary: Definitions of Web-related terms | MDN A callback function is a function passed into another function as an argument, which is then invoked inside the outer function to complete some k.. 연산자 재정의 함수의 구현 위치에 대하여. C++을 가지고 짧막한 실습을 하다가 문득 궁금해졌다. 연산자 재정의 함수를 클래스의 friend 함수로 선언하고, 도대체 어디서 정의해야할까? .h .cpp 로 나뉘어진 클래스 작성에 익숙치않아 기초적인 것에 꽤나 머리를 싸멨다. 알아보자. 문제의 구현 방식. 오류를 해결하기 위해, operator 이전 1 2 3 4 다음