728x90
반응형

데이터베이스 26

[SQLite] LIKE 구문

Query문의 WHERE을 사용하여 제약을 만들 때 부분적 일치를 확인하는 구문이다. MySQL과 대부분 동일하며, &를 %로 바꿔 사용하면 된다. -- A로 시작하는 이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE 'A%' -- A로 끝나는 이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE '%A' -- A를 포함하는이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE '%A%' -- A로 시작하는 이름을 가진 두 글자 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE 'A_' -- A로 시작하는 이름을 가진 세 글자 레코드 SELECT '..

DB/SQLite 2021.11.17

[MySQL] SELECT 결과 INSERT 하기

TABLE 과 TABLE 사이에 레코드를 복사를 할 때 하나하나 SQL문을 작성하는 것은 비효율적이다. 이럴 경우 사용하는 것이 INSERT ... SELECT 다. INSERT INTO 대상테이블 SELECT * FROM 소스테이블 INSERT INTO 대상테이블 (컬럼1, ....., 컬럼n) SELECT 컬럼1, ... , 컬럼n FROM 소스테이블 일반 예제 INSERT dropusertbl (userID, userName) SELECT userID, userName FROM usertbl INSERT dropusertbl (userID, userName) SELECT userID, userName FROM usertbl ORDER BY userID 레코드 합성 예제 INSERT INTO drop..

DB/MySQL 2021.09.02

운명적 존재를 위한 데이터베이스 설계 ( M. J. HERNANDEZ) - 사이텍미디어

이 책은 사실 아주 오래전에 구입한 책이라서 이미 절판이라 더 구할 수도 있다. 그 당시에 무슨 바람이 불었는지 데이터베이스에 관심이 있었는데, 그대로 쭉 이어 갔으면 지금보다 연봉이 더 높아졌으려나.. 이 책은 데이터베이스의 기술적인 얘기를 하는 책은 아니다. 데이터베이스를 꾸려나가는 과정을 집필해 놓았다. 어떤 방식으로 진행되며 DB 관리자와 사용자와 어떤 면담을 해야 하는지 어떤 정보를 캐치해 내어야 하느지 등의 실무적인 책이었다. 하지만 내가 데이터베이스 PM의 일을 할 것 같지는 않아서 큰 도움이 될 것 같지는 않다. 매니저들이 이렇게 업무를 진행하는구나 정도를 알 수 있었다. 전반적인 내용이지만 기초적인 부분도 있었기 때문에 조금은 도움을 받을 수 있었다.

참고자료/도서 2021.08.25

[데이터베이스] 테이블 관계는 왜 중요한가

관계는 관계형 데이터베이스의 중요한 구성 요소다. 이것은 논리적으로 서로 연관된 한 쌍의 테이블들 사이의 연결을 설정한다. 이것은 테이블 구조를 더 개선하고 이중 데이터를 최소화하도록 도와준다. 이것은 여러 테이블들로부터 동시에 데이터를 추출할 수 있도록 해 주는 메커니즘이다. 적절히 정의된 관계는 관계 수준의 무결성을 제공하는데, 이것은 관계 자체가 신뢰성 있고 정상적이라는 것을 보장한다. 적절한 관계 설정에 실패해버리면 여러 테이블로부터 온 데이터를 갖고 작업하기가 힘들어지고, 연관된 테이블들에 레코드를 삽입, 갱신 또는 삭제하려고 할 때 문제에 맞닥뜨리게 된다. 관계의 종류 데이터베이스 내의 테이블들 사이의 관계 설정을 시작하기 전에 주어진 한 상의 테이블들 사이에 존재할 수 있는 관계의 종류에 대..

[데이터베이스] 필드 명세

필드들은 데이터베이스 기반이다. 이것들은 조직에 중요한 주제(subject)의 특성들을 나타낸다. 데이터 무결성에 대해서는 많은 말을 하고 있지만, 필드에 대해서는 대체로 그렇지 않다. 필드 명세(field specifications)를 정의함으로써 데이터 무결성을 설정하는 법을 알아보자. 필드 명세는 왜 중요한가 필드 명세가 결정적으로 중요한지 그 이유를 알아보자. 필드 명세는 필드 수준의 무결성을 설정하고 강화하는데 도움이 된다. 각 필드를 위한 필드 명세를 정의하는 것은 전반적인 데이터 무결성을 개선한다. 필드 명세를 정의하는 것은 데이터베이스 내의 데이터의 본질과 목적을 완전히 이해하도록 해 준다. 필드 명세는 데이터베이스의 '데이터 사전(data dictionary)'을 구성한다. 데이터베이스 ..

[데이터베이스] 키

키는 왜 중요한가 다음과 같은 이유 때문에 키들이 테이블 구조에 있어 결정적으로 중요하다. 테이블 내의 각 레코드가 정확하게 식별되도록 보장한다. 다양한 종류의 무결성을 설정하고 강화하는 것을 도와준다. 테이블 관계를 설정하도록 해준다. 항상 각 테이블을 위해 적절한 키들을 정의하도록 한다. 그렇게 하면 테이블 구조가 정상적이고, 각 테이블 내의 중복 데이터가 최소화되고, 테이블들 사이의 관계가 튼튼해지도록 보장하는데 도움이 된다. 각 테이블에 키 설정하기 키는 후보(candidate) 키, 주(primary) 키, 외래(foreign) 키, 그리고 비 키(non-keys)라는 네 개의 주요 키 종류가 있다. 키의 종류는 테이블 내에서의 기능을 결정한다. 후보 키 후보 키는 테이블 주제의 단일 인스턴스를..

[데이터베이스] 필드 정하기

필드 이름 개선하기 필드는 그것이 속해 있는 테이블의 주제의 특성을 나타낸다. 필드가 적절한 이름을 가지고 있을 때 필드가 나타내는 특성을 쉽게 식별할 수 있다. 모호하거나 애매하거나 불명확한 필드 이름은 문제가 있다는 확실한 시혼이고, 필드의 목적을 완전히 식별하지 않았다는 것을 말한다. 필드 이름을 부여하는 방법 유일하고, 전체 조직에 의미가 있는 설명적인 이름을 부여한다. 필드가 나타내는 특성을 정확하게, 명확하게, 그리고 모호하지 않게 식별하는 이름을 부여한다. 필드가 나타내는 특성의 의미를 전달하기 위해 필요한 최소 개수의 단어들을 사용한다. 두문자어(acronyms)를 사용하지 말고, 약어(abbreviations)는 사려 깊게 사용한다. 필드 이름의 의미를 혼동시킬 수 있는 단어들을 사용하지..

[데이터베이스] 테이블 정하기

테이블 종류(type)는 데이터베이스 내에서 수행하는 역할에 의해 테이블을 분류하도록 해 주며, 비슷한 방식으로 작동하는 테이블들을 식별하기 위한 수단을 제공한다. 테이블의 역할은 그 종류를 결정하느데, 주어진 테이블과 결부시킬 수 있는 네 개의 테이블 종류가 있다. 데이터 테이블 : 조직에 중요한 주제를 나타내고 데이터베이스가 제공하는 정보의 첫 번째 기초를 이룬다. 연결(linking) 테이블 : 다대다 관계의 두 테이블 사이의 연결을 설정한다. 부분 집합(subset) 테이블 : 특정 데이터 테이블과 연관되어 있는 필드들을 포함하고, 이 데이터 테이블의 주제를 매우 구체적인 방법으로 더 설명한다. 검증(validation) 테이블 : 비교적 정적인 데이터를 포함하고, 데이터 무결성의 중요한 구성 요..

[데이터베이스] 임무 목표 정의하기

임무 목표는 데이터베이스에서 관리되는 데이터에 의해 지원되는 일반적인 작업들을 나타내는 문장들이다. 각각의 임무 목표는 단일 작업을 나타낸다. 이 업무 목표들은 데이터베이스 설계 작업 전체에 걸쳐 사용할 정보를 제공한다. 예를 들어, 임무 목표는 데이블 구조, 필드 명세, 관계 특성, 뷰 등을 정의하도록 도와준다. 잘 작성된 임무 목표 잘 작성된 임무 목표는 일반적인 작업을 명확하게 정의한 선언적 문장이고, 불필요한 세부 사항이 없다. 그것은 일반적인 용어로 표현되고, 간결하고 요령이 있으며, 모호하지 않다. 전형적인 임무 목표의 예 우리는 완전한 환자 주소 정보를 관리할 필요가 있다. 우리는 모든 고객 판매를 추적할 필요가 있다. 우리는 고객 대표가 특정하게 주어진 시간에 20명을 넘지 않는 고객들을 ..

[데이터베이스] 임무 명세 정의하기

임무 명세는 데이터베이스의 특별한 목적을 일반적인 용어로 작성하는 것이고, 데이터베이스 설계 작업의 시작 단계에서 그것을 정의한다. 그것은 설계 노력을 위한 초점을 제공하고, 주의가 흐트러지고 데이터베이스 구조가 불필요하게 커지거나 복잡해지는 것을 방지해 준다. 잘 작성된 임무 명세 좋은 임무 명세는 간결하고 요령이 있다. 잘 작성된 임무 명세에는 특정 작업을 구체적으로 설명하는 구나 문장이 없다. 만약에 임무 명세에 이런 종류의 구나 문장이 포함되어 있다면, 그것을 삭제하고 재작성한다. 뉴 스타즈 탤런트 대행사(New Starz Talent Agency) 데이터베이스의 목적은 우리가 생성하는 데이터를 관리하고, 고객들에게 제공하는 약속 서비스와 연예인들에게 제공하는 관리 서비스를 지원하는 정보를 제공하..

[데이터베이스] 설계작업

완전한 데이터베이스 설계 절차를 수행하지 않고 데이터베이스의 설계를 시도하는 것은 나쁜 생각이라는 것은 잘 알려지고 증명된 사실이다. 많은 데이터베이스 문제는 잘못된 데이터베이스 설계에 기인하며, 설계 절차를 부분적으로 따르는 것은 그것을 전혀 따르지 않는 것만큼이나 나쁘다. 불완전한 설계는 잘못된 설계다. 완전하고 생략되지 않은 설계 절차를 따르는 것만이 정상적인 구조와 데이터 무결성을 보장한다. 설계 절차에 소비한 시간이 적을수록 데이터베이스에 문제를 만날 위험은 커진다. 데이터베이스 설계 절차를 따르는 것이 비록 데이터베이스를 설계할 때 만날 수 있는 문제를 완전히 제거해 주지는 못하겠지만, 그것을 최소화하는 데는 큰 도움을 줄 것이다. 업무 명세와 임무 목표 정의하기 데이터베이스 설계 작업의 첫 ..

[데이터베이스] 용어

관계형 데이터베이스 설계는 다른 직업, 무역 또는 훈련에서처럼 자체적으로 고유한 용어 집합을 가지고 있다. 값 관련 용어들 데이터 데이터베이스에 저장하는 값이 데이터다. 데이터는 어떤 수동적이거나 자동적인 처리에 의해 바뀌기 전까지는 같은 상태를 유지한다는 측면에서 정적이다. 데이터의 의미는 그것들이 처리되기 전까지는 알 수가 없다. 정보 정보는 작업을 하거나 찾아볼 때 의미 있고 유용하도록 처리한 데이터이다. 이것은 데이터베이스에 저장된 데이터와 비교할 때, 끊임없이 변한다는 점에서, 그리고 무한대의 방법으로 처리되고 표현될 수 있다는 점에서 동적이다. 데이터와 정보의 차이점을 이해하는 것은 매우 중요하다. 정보는 데이터베이스 내에 적절한 데이터가 있고, 데이터베이스가 그 정보를 지원할 수 있는 방법으..

[데이터베이스] 왜 데이터베이스 설계에 관심을 가져야 하는가

데이터베이스 설계에 관심을 가져야 하는 주된 이유는 그것이 데이터베이스 내의 데이터의 일관성, 무결성, 그리고 정확성에 결정적으로 중요하기 때문이다. 데이터베이스를 부적절하게 설계하면 어떤 정보는 추출하기 힘들고, 검색에서 부정확한 정보를 얻는 위험을 감수해야 한다. 이론의 중요성 이론의 주된 장점은 결과를 예측할 수 있도록 도와준다는 것이다. 이것은 하나의 처리 또는 일련의 처리를 수행할 때 어떤 일이 일어날지 예측할 수 있도록 해 준다. 관계형 데이터베이스는 집합 이론과 1차 술어 논리라는 수학의 두 분야에 기초를 두고 있다. 바로 이 사실이 관계형 데이터베이스가 정확한 정보를 보장하도록 해 주는 것이다. 또 이 수학의 분야들은 좋은 설계 방법론을 형식화하기 위한 기초와 좋은 관계형 데이터베이스 구조..

[데이터베이스] 데이터베이스의 종류

데이터베이스는 어떤 종류의 조직 또는 조직의 프로세스를 모델링하기 위한 목적으로 사용되는, 조직적으로 모아놓은 데이터를 말한다. 데이터베이스에는 운영(operational) 데이터베이스와 분석(analytical) 데이터베이스라는 두 종류가 있다. 데이터 베이스는 일상적으로 데이터를 수집하고 수정하고 관리할 필요가 있는 상황인 온라인 트랜젝션 처리(OLTP : On-Line Transaction Processing) 시나리오에 주로 사용된다. 반면에, 분석 데이터베이스는 역사적이고 시간에 의존적인 데이터를 저장하고 추적할 필요가 있는 상황인 온라인 분석 처리(OLAP : On-Line Analytical Processing) 시나리오에서 주로 사용된다. 분석 데이터베이스는 동향 파악, 장기간에 걸친 통계..

[MySQL] LIKE 구문

Query문의 WHERE을 사용하여 제약을 만들 때 부분적 일치를 확인하는 구문이다. -- A로 시작하는 이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE 'A&' -- A로 끝나는 이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE '&A' -- A를 포함하는이름을 가진 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE '&A&' -- A로 시작하는 이름을 가진 두 글자 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE 'A_' -- A로 시작하는 이름을 가진 세 글자 레코드 SELECT '컬럼명' FROM '테이블명' WHERE '컬럼명' LIKE '..

DB/MySQL 2021.06.04

[MySQL] SHOW TABLES 테이블 정보 확인

데이터베이스에 생성된 테이블 정보를 확인하는 명령은 'SHOW TABLES'가 있다. MariaDB [stsodb]> SHOW TABLES; +---------------------+ | Tables_in_stsodb | +---------------------+ | machcomptbl | | machsubcomptbl | | v_machcompDomain | | v_machsubcompDomain | | v_submachDomain | +---------------------+ 14 rows in set (0.000 sec) 다른 방법으로는 information_schema를 사용할 수 있는데 엄청난 정보들이 나와서 추천하지는 않는다. SELECT TABLE_NAME FROM information_s..

DB/MySQL 2021.05.25

[SQLite] VSCode에서 SQLite 사용하기

VSCode에서 SQLite를 사용하는 것이 가능하다. 우선 SQLite로 만들어진 *.db3 파일을 VSCode로 연결하면 확장팩에서 SQLite를 추천해준다. 그것이 아니라면 확장팩 검색을 하자. '설치'를 눌러주면 자동으로 설치해 준다. 설치가 끝나면 MySQL Workbench처럼 바로바로 사용할 수 있을 줄 알았는데 그것은 아닌 것 같았다. [SQLite] SQLite 설치 및 사용 준비 SQLite는 클라이언트 응용 프로그램에 임베디드 되어 동작하는 Open Source DBMS이다. SQLite는 '경량화' 되어 있는 DB이며 파일을 기반으로 하기 때문에 데이터베이스의 백업 역시 파일을 통째로 복사하 stormpy.tistory.com Database 파일 여는 방법 1. 명령 팔레트 명령을..

DB/SQLite 2021.05.14
728x90
반응형