主頁 > 資料庫 > 資料庫實驗系列之1資料庫及資料庫中表等資料庫物件的建立實驗(包括關系圖、完整性、權限控制、視圖、索引等內容)

資料庫實驗系列之1資料庫及資料庫中表等資料庫物件的建立實驗(包括關系圖、完整性、權限控制、視圖、索引等內容)

2020-09-10 15:16:34 資料庫

目錄

  • 實驗1 SQL Server的安裝
    • 安裝程序展示
  • 實驗2 設計資料庫、創建資料庫和資料表
  • 實驗5 視圖
  • 實驗6 完整性約束
  • 實驗7 權限管理
  • 附 創建market表,后續將會使用

實驗1 SQL Server的安裝

  • 實驗目的
  1. 掌握SQL Server安裝的硬體要求和系統要求,
  2. 熟悉SQL Server的安裝步驟,
  3. 掌握SQL Server的卸載方法,
  4. 了解SQL Server的主要組件,
  5. 掌握登錄和斷開資料庫服務器的方法,
  • 實驗內容
  1. 檢查計算機的軟、硬體配置(CPU、記憶體、硬碟和作業系統)是否達到SQL Server的安裝要求,
  2. 安裝SQL Server
  1. 雙擊安裝軟體中的“Setup”程式圖示,進入SQL Server安裝中心,
  2. 輸入有效的產品密鑰、接受許可條款,并且安裝“程式支持檔案”,
  3. 根據需要選擇安裝組件,
  4. 進行服務器配置,配置服務的賬戶、啟動型別、排序規則等,
  5. 進行資料庫引擎配置,配置資料庫管理員sa指定的密碼,
  6. 進行安裝配置規則的設定,確保狀態列為“已通過”,
  7. 進入正式安裝界面,等待安裝進度完畢,
  • 查看“SQL Server Management Studio”“配置工具”和“匯入和匯出資料”等組件,并掌握其使用方法,
  • 使用運行安裝軟體的方法或者通過控制面板卸載SQL Server
  • 登錄和斷開資料庫服務器,
  1. 分別使用Windows身份驗證方式和SQL Server身份驗證方式打開“SQL Server Management Studio”,
  2. 查看“物件資源管理器”是服務器中所有資料庫物件的樹視圖,
  3. 斷開與資料庫服務器的連接,

安裝程序展示

選擇安裝路徑正在下載安裝包正在安裝
SQL SERVER完成安裝,下面安裝SSMS(SQL SERVER管理軟體)
安裝SSMS中

實驗2 設計資料庫、創建資料庫和資料表

  • 實驗目的
  1. 掌握在SQL Server中使用物件資源管理器和SQL命令創建資料庫與修改資料庫的方法,
  2. 掌握在SQL Server中使用物件資源管理器或者SQL命令創建資料表和修改資料表的方法(以SQL命令為重點),
  • 實驗內容

給定如表3.6、表3.7和表3.8所示的學生資訊,
表3.6 學生表
學號 姓名 性別 專業班級 出生日期 聯系電話
0433 張艷 女 生物04 1986-9-13
0496 李越 男 電子04 1984-2-23 1381290××××
0529 趙欣 男 會計05 1984-1-27 1350222××××
0531 張志國 男 生物05 1986-9-10 1331256××××
0538 于蘭蘭 女 生物05 1984-2-20 1331200××××
0591 王麗麗 女 電子05 1984-3-20 1332080××××
0592 王海強 男 電子05 1986-11-1
表3.7 課程表
課程號 課程名 學分數 學時數 任課教師
K001 計算機圖形學 2.5 40 胡晶晶
K002 計算機應用基礎 3 48 任泉
K006 資料結構 4 64 馬躍先
M001 政治經濟學 4 64 孔繁新
S001 高等數學 3 48 趙曉塵
表3.8 學生作業表
課程號 學號 作業1成績 作業2成績 作業3成績
K001 0433 60 75 75
K001 0529 70 70 60
K001 0531 70 80 80
K001 0591 80 90 90
K002 0496 80 80 90
K002 0529 70 70 85
K002 0531 80 80 80
K002 0538 65 75 85
K002 0592 75 85 85
K006 0531 80 80 90
K006 0591 80 80 80
M001 0496 70 70 80
M001 0591 65 75 75
S001 0531 80 80 80
S001 0538 60 80

  1. 在SQL Server中使用物件資源管理器和SQL命令創建學生作業管理資料庫,資料庫的名稱自定,
  1. 使用物件資源管理器創建資料庫,請給出重要步驟的截圖,
  2. 洗掉第(1)步創建的資料庫,再次使用SQL命令創建資料庫,請給出SQL代碼,
  3. 創建資料庫之后,如果有需要,可以修改資料庫,
  1. 對表3.6,表3.7和表3.8,分別以下表的方式給出各欄位的屬性定義和說明,

欄位名 資料型別 長度或者精度 默認值 完整性約束 …… …… …… …… …… …… …… ……

  1. 使用SQL命令在學生作業管理資料庫中建立學生表、課程表和學生作業表,在實驗報告中給出SQL代碼,
  2. 在各個表中輸入表3.6、表3.7和表3.8中的相應內容,

SQL陳述句代碼

--使用SQL陳述句創建學生作業管理資料庫
Create database 學生作業管理資料庫;


--使用SQL陳述句創建表
use 學生作業管理資料庫;
Create table 學生表(
	學號 int primary key not null,
	姓名 nvarchar(20) not null,
	性別 nchar(1) default '男' not null,
	專業班級 nvarchar(20) not null,
	出生日期 nvarchar(20) not null,
	聯系電話 nvarchar(20) not null,
);
--修改學生表聯系電話可以為空
alter table 學生表
alter column 聯系電話 nvarchar(20);
alter table 學生表
alter column 出生日期 nvarchar(20);
Create table 課程表(
	課程號 nvarchar(20) primary key,
	課程名 nvarchar(20)not null,
	學分數 int not null,
	學時數 int not null,
	任課教師 nvarchar(20) not null,
);
alter table 課程表
alter column 學分數 float;
create table 學生作業表(
	課程號 nvarchar(20)  foreign key references 課程表(課程號),
	學號 int  foreign key references 學生表(學號),
	作業1成績 int check (作業1成績>=0 and 作業1成績<=100),
	作業2成績 int check (作業2成績>=0 and 作業2成績<=100) not null,
	作業3成績 int check (作業3成績>=0 and 作業3成績<=100) not null,
);
alter table 學生作業表
alter column 作業2成績 int ;
--插入學生表的資料
insert into 學生表 (學號,姓名,性別,專業班級,出生日期) 
	values(0433,'張艷','女','生物04',1986-9-13);
--上邊寫錯出生日期,進行改正
update 學生表 set 出生日期='1986-9-13' where 學號=0433;
--繼續插入資料
insert into 學生表 (學號,姓名,性別,專業班級,出生日期,聯系電話) 
	values(0496,'李越','男','電子04','1984-2-23','1381290××××');
insert into 學生表 (學號,姓名,性別,專業班級,出生日期,聯系電話) 
	values(0529,'趙欣','男','會計05','1984-1-27','1350222××××');
insert into 學生表 (學號,姓名,性別,專業班級,出生日期,聯系電話) 
	values(0531	,'張志國','男','生物05','1986-9-10','1331256××××');
insert into 學生表 (學號,姓名,性別,專業班級,出生日期,聯系電話) 
	values(0538,'于蘭蘭','女','生物05','1984-2-20',	'1331200××××');
insert into 學生表 (學號,姓名,性別,專業班級,出生日期,聯系電話) 
	values(0591	,'王麗麗',	'女',	'電子05',	'1984-3-20	','1332080××××');
insert into 學生表 (學號,姓名,性別,專業班級,出生日期) 
	values(0592,'王海強','男','電子05','1986-11-1');


--查詢學生表,查看資料
select * from 學生表;

--為課程表插入資料
insert into 課程表(課程號,課程名,學分數,學時數,任課教師) 
	values ('K001',	'計算機圖形學',	2.5,	40,	'胡晶晶');
insert into 課程表(課程號,課程名,學分數,學時數,任課教師) 
	values ('K002'	,'計算機應用基礎',	3	,48,	'任泉');
insert into 課程表(課程號,課程名,學分數,學時數,任課教師) 
	values ('K006',	'資料結構',	4,	64,	'馬躍先');
insert into 課程表(課程號,課程名,學分數,學時數,任課教師) 
	values ('M001',	'政治經濟學',	4	,64	,'孔繁新');
insert into 課程表(課程號,課程名,學分數,學時數,任課教師) 
	values ('S001',	'高等數學',	3,	48	,'趙曉塵');
--查詢課程表
select * from 課程表;

--為學生作業表插入資料
insert into 學生作業表(課程號,學號,作業1成績,作業2成績,作業3成績)
	values('K001',0433,	60,	75	,75);
insert into 學生作業表(課程號,學號,作業1成績,作業2成績,作業3成績)
	values('K001',	0529	,70,	70,	60);
insert into 學生作業表(課程號,學號,作業1成績,作業2成績,作業3成績)
	values('K001',	0531,	70,	80	,80),('K001',	0591,	80,	90,	90);
select * from 學生作業表;
--多行插入
insert into 學生作業表(課程號,學號,作業1成績,作業2成績,作業3成績)
	values('K002',0496,80,80,90),
		('K002',0529,70,70,85),
		('K002',0531,80,80,80),
		('K002',0538,65,75,85),
		('K002',0592,75,85,85),
		('K006',0531,80,80,90),
		('K006',0591,80,80,80),
		('M001',0496,70,70,80),
		('M001',0591,65,75,75),
		('S001',0531,80,80,80);
insert into 學生作業表(課程號,學號,作業1成績,作業3成績)
	values('S001',0538,60,80);
--查詢學生作業表
select * from 學生作業表;





--實驗2第4問
select * from 課程表;
select * from 學生表;
select * from 學生作業表;

在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述

實驗5 視圖

  • 實驗目的
  1. 掌握創建視圖的方法,
  2. 掌握修改視圖的方法,
  3. 掌握查詢視圖的方法,
  4. 掌握更新視圖的方法,
  5. 掌握洗掉視圖的方法
  • 實驗內容
    根據第一部分實驗中創建的學生作業管理資料庫以及其中的學生表、課程表和學生作業表,進行以下操作,
  1. 創建一個電子05的學生視圖(包括學號、姓名、性別、專業班級、出生日期),
  2. 創建一個生物05的學生作業情況視圖(包括學號、姓名、課程名、作業1成績、作業2成績、作業3成績),
  3. 創建一個學生作業平均成績視圖(包括學號、作業1平均成績、作業2平均成績、作業3平均成績),
  4. 修改第2題中生物05的學生作業情況視圖,將作業2成績和作業3成績去掉,
  5. 向電子05的學生視圖中添加一條記錄,其中學號為0596,姓名為趙亦,性別為男,專業班級為電子05,出生日期為1986-6-8(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?),
  6. 將電子05的學生視圖中趙亦的性別改為“女”(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?),
  7. 洗掉電子05的學生視圖中趙亦的記錄,
  8. 洗掉電子05的學生視圖(給出SQL陳述句即可),

SQL陳述句代碼

--1.創建一個電子05的學生視圖(包括學號、姓名、性別、專業班級、出生日期),
create view 電子05學生視圖
as
select 學號,姓名,性別,專業班級,出生日期 from 學生表 where 專業班級='電子05';

--2.創建一個生物05的學生作業情況視圖(包括學號、姓名、課程名、作業1成績、作業2成績、作業3成績),

create view 生物05的學生作業情況
as
select  學生作業表.學號,姓名,課程名,作業1成績,作業2成績,作業3成績 from 學生作業表,學生表,課程表
where 學生作業表.學號=學生表.學號 and 課程表.課程號=學生作業表.課程號 and 學生表.專業班級='生物05';


--3.創建一個學生作業平均成績視圖(包括學號、作業1平均成績、作業2平均成績、作業3平均成績),
create view 學生作業平均成績
as
select 學號,avg(作業1成績) as 作業1平均成績,avg(作業2成績) as 作業2平均成績,avg(作業3成績) as 作業3平均成績 from 學生作業表
group by 學號;

--4.修改第2題中生物05的學生作業情況視圖,將作業2成績和作業3成績去掉,
create view 生物05的學生作業情況修改 as
select 學號,姓名,課程名,作業1成績
from 生物05的學生作業情況;

--5.向電子05的學生視圖中添加一條記錄,其中學號為0596,姓名為趙亦,性別為男,專業班級為電子05,出生日期為1986-6-8
-- (除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?),

insert into 電子05學生視圖(學號,姓名,性別,專業班級,出生日期) values 
(0596,'趙亦','男','電子05','1986-6-8');

--查詢看一下視圖內容
select * from 電子05學生視圖;
select * from 學生表;

--6.將電子05的學生視圖中趙亦的性別改為“女”
--(除了電子05的學生視圖發生變化之外,看看學生表中發生了什么變化?),
update 電子05學生視圖 set 性別='女' where 姓名='趙亦';

--7.洗掉電子05的學生視圖中趙亦的記錄,
delete from 電子05學生視圖
where 學號=596;
--8.洗掉電子05的學生視圖(給出SQL陳述句即可),
drop view 電子05學生視圖;

在這里插入圖片描述

實驗6 完整性約束

針對實驗一(學生課程資料庫)或實驗二(學生課程作業資料庫)完成各種完整性約束的定義補充

SQL陳述句代碼

--實驗6
/*針對實驗一(學生課程資料庫)或實驗二(學生課程作業資料庫)完成各種完整性約束的定義補充
*/

--首先查詢一波看有什么欄位
select * from 學生表;
select * from 課程表;
select * from 學生作業表;
--關于學生表
/*這是添加主鍵的SQL陳述句,如果已經有主鍵則添加不成功
alter table 學生表
add constraint py_key1 primary key(姓名);
*/
/*--這是洗掉主鍵約束的SQL陳述句,如果no active則洗掉不成功
alter table 學生表
drop constraint PK__學生表__1CC396D29329FDB5;
*/


--計劃將課程表的學時數定義為float 型別
alter table 課程表
alter column 學時數  float ;

--將學生作業表中3個作業成績都定義為float型別,值在0到100 可以為null
/*
alter table 學生作業表
alter column 作業1成績 float; 
*/
--出錯原因:因為他有一個視圖,所以改不成
/*訊息 5074,級別 16,狀態 1,第 25 行
物件'CK__學生作業表__作業1成績__33D4B598' 依賴于 列'作業1成績',
訊息 4922,級別 16,狀態 9,第 25 行
由于一個或多個物件訪問此 列,ALTER TABLE ALTER COLUMN 作業1成績 失敗,*/

在這里插入圖片描述

實驗7 權限管理

創建用戶、角色,用GRANT陳述句授權,用REVOKE陳述句撤銷授權,觀察對資料庫操作時權限控制的情況

SQL陳述句代碼

use 學生作業管理資料庫;
--首先把兩個表創起來
create table P155_6_學生
(
	學號 int constraint py_key_155_6_學生 primary key,
	姓名 nvarchar(20),
	年齡 int constraint check_155 check(年齡>0 and 年齡<120),
	性別 nchar default '男',
	家庭住址 nvarchar(20),
	班級號 nvarchar(20) 
);
CREATE TABLE P155_6_班級
(
	班級號 int constraint py_key_155_6_班級 primary key,
	班級名 nvarchar(20),
	班主任 nvarchar(20),
	班長 nvarchar(20)
);
--創建用戶U1、u2
create login U1 with password='123', default_database=學生作業管理資料庫; 
create user U1  for login U1  with default_schema=dbo;



--開始授權
grant select
on  P155_6_學生
To U1
with grant OPTION;

--解除查詢授權
revoke select on P155_6_學生 from U1 cascade;

 --洗掉資料庫用戶: 
drop user U1
--洗掉 SQL Server登陸帳戶:
drop login U1;

--正式開始
--先創個U1、U2
create login U1 with password='123', default_database=學生作業管理資料庫; 
create user U1  for login U1  with default_schema=dbo;

create login U2 with password='123', default_database=學生作業管理資料庫; 
create user	U2  for login U2  with default_schema=dbo;

--開始授權
--1.授予U1兩表所有權限,并可將權限授予他人
--該陳述句是錯誤的,但是還沒有找到原因	grant all on  P155_6_班級,P155_6_學生 to U1 ;with grant option;
exec sp_addrolemember 'db_owner', 'U1';
--grant all privileges on table P155_6_班級,P155_6_學生 to U1 with grant option;


--2.授予U2對學生表具有查看權限,對家庭住址有更新權限
grant select,update(家庭住址) on  P155_6_學生 to U2;

--3.將對班級表查看權限授予所有用戶
grant select on P155_6_學生 to public;

--4.將對學生表的查詢、更新權限授予角色R1
create login R1 with password='123', default_database=學生作業管理資料庫; 
create user R1 for login R1  with default_schema=dbo;
grant  select,update on P155_6_學生 to R1;

--5.將角色R1授予用戶U1,并且U1可以繼續授予其他角色
--錯誤,目前還找不到原因	GRANT  R1 TO U1 with admin option;


--第7題
create table P155_7_職工(
	職工號 int constraint pk_1 primary key,
	姓名 nvarchar(20),
	年齡 int constraint ck_1 check(年齡 between 0 and 100),
	職務 nvarchar(20),
	工資 float check(工資>0),
	部門號 int constraint fk_1 foreign key(部門號) references P155_7_部門(部門號)
);
create table P155_7_部門(
	部門號 int constraint pk_2 primary key,
	名稱 nvarchar(20),
	經理名 nvarchar(20),
	地址 nvarchar(20),
	電話號 nvarchar(20)
);

--1.用戶王明對兩個表有select權限
create login 王明 with password='123', default_database=學生作業管理資料庫; 
create user 王明 for login 王明  with default_schema=dbo;
GRANT select on  P155_7_部門 to 王明;
GRANT select on  P155_7_職工 to 王明;

--2.用戶李勇對兩個表有insert和delete權限
create login 李勇 with password='123',default_database=學生作業管理資料庫;
create user 李勇 for login 李勇 with default_schema=dbo;
GRANT insert,delete on P155_7_部門 to 李勇;
GRANT insert,delete on P155_7_職工 to 李勇;

--3.每個職工只對自己的記錄有select權限
	

--4.用戶劉星對職工表有select權限,對工資欄位有更新權限
create login 劉星 with password='123',default_database=學生作業管理資料庫;
create user 劉星 for login 劉星 with default_schema=dbo;
GRANT select,update(工資) on P155_7_職工 to 劉星;

--5.用戶張新具有修改這兩個表的權限
create login 張新 with password='123',default_database=學生作業管理資料庫;
create user 張新 for login 張新 with default_schema=dbo;
GRANT alter on P155_7_部門 to 張新;
GRANT alter on P155_7_職工 to 張新;

--6.用戶周平具有這兩個表的所有權限,并可以授權其他用戶
create login 周平 with password='123',default_database=學生作業管理資料庫;
create user 周平 for login 周平 with default_schema=dbo;
--ALL 權限已不再推薦使用,并且只保留用于兼容性目的,它并不表示對物體定義了 ALL 權限,
--GRANT all privileges  on P155_7_部門 to 周平 with grant option;
--GRANT all on P155_7_職工 to 周平 with grant option;

--7.用戶楊蘭具有從每個部門職工中select最高工資,最低工資,平均工資的權限,他不能查看每個人的工資
create login 楊蘭 with password='123',default_database=學生作業管理資料庫;
create user 楊蘭 for login 楊蘭 with default_schema=dbo;
create view P155
as 
select 名稱,max(工資) as '最高工資',min(工資) as '最低工資',avg(工資) as '平均工資' from P155_7_職工 join
(select 部門號,名稱 from P155_7_部門) as 新命名表 on P155_7_職工.部門號=新命名表.部門號
group by 名稱;

GRANT select on P155 to 楊蘭;

在這里插入圖片描述

附 創建market表,后續將會使用

創建market表,其中包含客戶表,商品表,訂單表

  1. 查找所以上海客戶的資訊
  2. 查找所有商品的名稱、庫存量、價格、及折扣25%后的價格,并使用別名“Discount”標識折扣價,結果按價格由低到高排序
  3. 查找商品名中含“Computer”的商品的編號、名稱、及價格
  4. 查找庫存量大于100小于500的商品的名稱、庫存量和單價
  5. 查找2007年7月1日至2007年12月31日期間,訂貨金額大于30000的所有訂單的客戶姓名、商品名稱、單價、單貨數量、訂貨金額

SQL陳述句代碼

create database market;
use market;
create table Customers(		--客戶表
	CustomerID int constraint pk_1 primary key,   --客戶編號為主鍵
	Cname nvarchar(20) not null,		--客戶姓名
	City nvarchar(20)		--所在城市
);

create table Goods(	--商品表
	GoodID	int constraint pk_2 primary key,	--商品編號為主鍵 
	Gname	nvarchar(20) not null,		--商品名稱
	Price	float not null,			--單價
	Provider	nvarchar(20) not	null,--供應商
	Stocks	int check(Stocks>=0),			--庫存量
	Status	nvarchar(20)	--商品狀態
);

create table Orders(	--訂單表
	OrderID	 int constraint  pk_3 primary key,	--訂單號
	GoodID	int constraint fk_1 foreign key references Goods(GoodID),	--商品編號
	CustomerID	int constraint fk_2 foreign key references Customers(CustomerID),--客戶編號
	Quantity	int check(Quantity>0),--訂貨數量
	OrderSum	float ,--訂貨金額
	Date	nvarchar(20)	--日期
);


--查找所以上海客戶的資訊
select * from Customers where City='上海';

--查找所有商品的名稱、庫存量、價格、及折扣25%后的價格,并使用別名“Discount”標識折扣價,結果按價格由低到高排序
select Gname,Stocks,Price,Price*0.75 Discount from Goods order by Price asc;

--查找商品名中含“Computer”的商品的編號、名稱、及價格
select GoodID,Gname,Price from Goods where Gname like '%Computer%';

--查找庫存量大于100小于500的商品的名稱、庫存量和單價
select	Gname,Stocks,Price from Goods where Stocks between 100 and 500;

--查找2007年7月1日至2007年12月31日期間,訂貨金額大于30000的所有訂單的客戶姓名、商品名稱、單價、單貨數量、訂貨金額
select Cname,Gname,Price,Quantity,OrderSum 
	from Customers,Goods,Orders 
where Customers.CustomerID=Orders.CustomerID and Goods.GoodID=Orders.OrderID and 
	date between '2007-7-1' and '2007-12-31' and OrderSum>30000;

在這里插入圖片描述在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/2535.html

標籤:SQL Server

上一篇:一個簡單的交叉報表_列轉行

下一篇:資料庫實驗系列之2資料庫上的基本操作實驗(針對表、視圖及不同權限用戶的增、刪、改、查及資料庫的備份和恢復)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more